我需要在表 A 上编写一个插入更新触发器,它将删除表 B 中的所有行,其中一列(比如 Desc)的值类似于表 A 的列(比如 Col1)中插入/更新的值。我将如何编写它以便我可以处理更新和插入情况。我将如何确定是否为更新或插入执行触发器。
触发器有特殊INSERTED的DELETED表格来跟踪“之前”和“之后”的数据。所以你可以使用类似的东西IF EXISTS (SELECT * FROM DELETED)来检测更新。更新时只有行DELETED,但INSERTED.
INSERTED
DELETED
IF EXISTS (SELECT * FROM DELETED)
在CREATE TRIGGER中寻找“插入” 。
编辑,2011 年 11 月 23 日
评论后,此答案仅适用于INSERTED和UPDATED触发。 显然,DELETE 触发器不能INSERTED像我上面所说的那样有“总是行”
UPDATED