Su INSERT
La declaración siempre se ejecuta en una transacción; ya sea que haya definido una explícitamente o, si no, entonces SQL Server usará una transacción implícita.
Está insertando una (o varias) filas en su tabla. Luego, aún dentro de la transacción, AFTER INSERT
el disparador se ejecuta y verifica ciertas condiciones, generalmente usando el Inserted
pseudo tabla disponible dentro del activador, que contiene las filas que se han insertado.
Si llama a ROLLBACK TRANSACTION
en su activador, entonces sí:su transacción, con todo lo que ha estado haciendo, se revierte y es como si eso INSERT
nunca sucedió:no aparece nada en la tabla de su base de datos.
También:FOR INSERT
es lo mismo que AFTER INSERT
en SQL Server:el activador se ejecuta después el INSERT
declaración ha hecho su trabajo.
Una cosa a tener en cuenta (que muchos programadores se equivocan):el disparador se dispara una vez por declaración - NO una vez por fila! Entonces, si inserta 20 filas a la vez, el disparador se dispara una vez y el Inserted
la pseudo tabla dentro del activador contiene 20 filas. Debe tener eso en cuenta al escribir el disparador:no ¡siempre tratando con una sola fila insertada!