sql >> Base de Datos >  >> RDS >> Sqlserver

¿Cómo puedo disparar un disparador ANTES de una eliminación en T-SQL 2005?

Puede usar la opción INSTEAD OF, simplemente elimine explícitamente las filas al final. Por ejemplo:

CREATE TRIGGER dbo.My_Table_Delete_Instead_Of_Trigger
ON dbo.My_Table
INSTEAD OF DELETE
AS
BEGIN

     -- Do some stuff here

     DELETE T
     FROM DELETED D
     INNER JOIN dbo.My_Table T ON T.PK_1 = D.PK_1 AND T.PK_2 = D.PK_2
END

Esto asumió una clave principal compuesta por las columnas PK_1 y PK_2.