Saltar al contenido

SQL Server – Después de insertar / Para insertar – Revertir

Solución:

Tu INSERT La declaración siempre se ejecuta en una transacción, ya sea que haya definido una explícitamente o, de lo contrario, SQL Server usará una transacción implícita.

Está insertando una (o varias) filas en su tabla. Entonces, todavía dentro de la transacción, el AFTER INSERT El disparador se ejecuta y verifica ciertas condiciones, por lo general utilizando el Inserted pseudotabla disponible dentro del disparador, que contiene las filas que se han insertado.

Si llamas ROLLBACK TRANSACTION en su disparador, entonces sí, su transacción, con todo lo que ha estado haciendo, es retrotraído 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 disparador se ejecuta después los INSERT declaración ha hecho su trabajo.

Una cosa a tener en cuenta (que muchos programadores se equivocan): el gatillo está disparado una vez por estado de cuentaNO una vez por fila! Entonces, si inserta 20 filas a la vez, el gatillo se dispara una vez y el Inserted La pseudo tabla dentro del disparador contiene 20 filas. Debe tener eso en cuenta al escribir el disparador: está no ¡Siempre lidiando con la inserción de una sola fila!

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *