【发布时间】:2009-01-21 15:27:48
【问题描述】:
在 SQL Server 2000 中,默认情况下,DELETE 查询是否会导致执行表的 UPDATE 触发器?
我知道我可以定义一个触发器,该触发器将在 DELETE 和 UPDATE 上执行,但我想我会先验证这实际上是必需的。
【问题讨论】:
标签: sql-server triggers
在 SQL Server 2000 中,默认情况下,DELETE 查询是否会导致执行表的 UPDATE 触发器?
我知道我可以定义一个触发器,该触发器将在 DELETE 和 UPDATE 上执行,但我想我会先验证这实际上是必需的。
【问题讨论】:
标签: sql-server triggers
DELETE 不会触发 UPDATE 触发器。如果您有一个触发器定义为在 DELETE 和 UPDATE 上触发,那么它将在 DELETE 上执行,但那是因为它也是一个 DELETE 触发器。
【讨论】:
将其转储到您的触发器中并自己检查
IF @@ROWCOUNT > 0
BEGIN
IF EXISTS (SELECT 1 FROM inserted)
BEGIN
IF EXISTS (SELECT 1 FROM deleted)
PRINT 'update';
ELSE
PRINT 'insert';
END
ELSE
PRINT 'delete';
END
【讨论】: