Din INSERT sætning kører altid i en transaktion - enten har du eksplicit defineret en, eller hvis ikke, så vil SQL Server bruge en implicit transaktion.
Du indsætter en (eller flere) række i din tabel. Derefter - stadig inde i transaktionen - AFTER INSERT trigger kører og kontrollerer visse forhold - typisk ved hjælp af Inserted pseudo-tabel tilgængelig i triggeren, som indeholder de rækker, der er blevet indsat.
Hvis du kalder ROLLBACK TRANSACTION i din trigger, så ja - din transaktion, med alt det, den har foretaget, er rullet tilbage og det er som om den INSERT aldrig sket - intet dukker op i din databasetabel.
Også:FOR INSERT er det samme som AFTER INSERT i SQL Server - triggeren udføres efter INSERT statement har gjort sit arbejde.
En ting at huske på (som mange programmører tager fejl):udløseren udløses én gang pr. erklæring - IKKE en gang pr række! Så hvis du indsætter 20 rækker på én gang, udløses udløseren én gang og Inserted pseudo-tabel inde i triggeren indeholder 20 rækker. Det skal du tage højde for, når du skriver triggeren - det er du ikke beskæftiger sig altid med, at der kun er indsat en enkelt række!