Twój INSERT Instrukcja zawsze działa w transakcji — albo została zdefiniowana jawnie, albo jeśli nie, to SQL Server użyje transakcji niejawnej.
Wstawiasz jeden (lub wiele) wierszy do tabeli. Następnie - nadal wewnątrz transakcji - AFTER INSERT wyzwalacz uruchamia i sprawdza określone warunki - zwykle przy użyciu Inserted pseudotabela dostępna wewnątrz wyzwalacza, która zawiera wstawione wiersze.
Jeśli zadzwonisz ROLLBACK TRANSACTION w wyzwalaczu, a następnie tak – transakcja, ze wszystkim, co robiła, jest cofana i to tak, jakby to INSERT nigdy się nie zdarzyło - nic nie pojawia się w tabeli bazy danych.
Także:FOR INSERT jest tym samym co AFTER INSERT w SQL Server - wyzwalacz jest wykonywany po INSERT oświadczenie spełniło swoje zadanie.
Należy pamiętać o jednej rzeczy (co wielu programistów się myli):wyzwalacz jest uruchamiany raz na instrukcję - NIE raz w rzędzie! Jeśli więc wstawisz 20 wierszy naraz, wyzwalacz zostanie wyzwolony raz i Inserted pseudotabela wewnątrz wyzwalacza zawiera 20 wierszy. Musisz wziąć to pod uwagę podczas pisania wyzwalacza - nie zawsze mamy do czynienia z wstawianiem tylko jednego wiersza!