如何在 T-SQL 2005 中删除之前触发触发器? [英] How can I fire a trigger BEFORE a delete in T-SQL 2005?

查看:29
本文介绍了如何在 T-SQL 2005 中删除之前触发触发器?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

How can I fire a trigger BEFORE a delete in T-SQL 2005? The FOR actually fires AFTER an event and they seems no BEFORE argument in the TRIGGER function. The INSTEAD OF is not what I want. I need to fire before I delete a record. Any ideas?

推荐答案

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

You can use the INSTEAD OF option, just explicitly delete the rows at the end. For example:

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 列组成.

This assumed a primary key made up of columns PK_1 and PK_2.

这篇关于如何在 T-SQL 2005 中删除之前触发触发器?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆