一尘不染

在T-SQL 2005中删除之前如何触发触发器?

sql

在T-SQL 2005中删除之前如何触发触发器?FOR实际上是在事件发生后触发的,并且在TRIGGER函数中它们似乎没有BEFORE参数。INSTEADOF不是我想要的。删除记录之前,我需要开除。有任何想法吗?


阅读 166

收藏
2021-03-17

共1个答案

一尘不染

您可以使用INSTEAD OF选项,只需在末尾显式删除行即可。例如:

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

假定主键由列PK_1和PK_2组成。

2021-03-17