Váš INSERT příkaz vždy běží v transakci – buď jste ji explicitně definovali, nebo pokud ne, pak SQL Server použije implicitní transakci.
Do tabulky vkládáte jeden (nebo více) řádek. Poté - stále uvnitř transakce - AFTER INSERT trigger se spouští a kontroluje určité podmínky - obvykle pomocí Inserted pseudo tabulka dostupná uvnitř spouštěče, která obsahuje řádky, které byly vloženy.
Pokud zavoláte ROLLBACK TRANSACTION ve vašem spouštěči, pak ano – vaše transakce se vším, co dělala, je vrácena zpět a je to jako by to INSERT nikdy se nestalo - nic se nezobrazí v tabulce databáze.
Také:FOR INSERT je stejný jako AFTER INSERT v SQL Server - trigger se provede po INSERT příkaz vykonal svou práci.
Jedna věc, kterou je třeba mít na paměti (což se mnoho programátorů mýlí):spouštěč se spustí jednou za příkaz – NE jednou za řádek! Pokud tedy vložíte 20 řádků najednou, spouštěč se spustí jednou a Inserted pseudo tabulka uvnitř spouštěče obsahuje 20 řádků. S tím je třeba počítat při psaní spouštěče – nejste vždy se zabývá pouze jedním vloženým řádkem!