Il tuo INSERT L'istruzione viene sempre eseguita in una transazione:se ne è stata definita una in modo esplicito o, in caso contrario, SQL Server utilizzerà una transazione implicita.
Stai inserendo una (o più) righe nella tabella. Quindi - sempre all'interno della transazione - il AFTER INSERT trigger esegue e controlla determinate condizioni, in genere utilizzando Inserted pseudo tabella disponibile all'interno del trigger, che contiene le righe che sono state inserite.
Se chiami ROLLBACK TRANSACTION nel tuo trigger, quindi sì:la tua transazione, con tutto ciò che sta facendo, viene rollback ed è come se quel INSERT mai successo - non viene visualizzato nulla nella tabella del database.
Inoltre:FOR INSERT è lo stesso di AFTER INSERT in SQL Server:il trigger viene eseguito dopo il INSERT dichiarazione ha fatto il suo lavoro.
Una cosa da tenere a mente (che molti programmatori sbagliano):il trigger viene attivato una volta per istruzione - NON una volta per riga! Quindi, se inserisci 20 righe contemporaneamente, il trigger viene attivato una volta e il Inserted la pseudo tabella all'interno del trigger contiene 20 righe. Devi tenerne conto quando scrivi il trigger:tu non sempre a che fare con una sola riga inserita!