我需要在trigger UPDATE,DELETE,INSERT.For最后两个命令中确定这3个命令中的每一个我接下来要做的是:
IF EXISTS (SELECT * FROM inserted)
BEGIN
END
ELSE IF EXISTS (SELECT * FROM deleted)
BEGIN
END
如何获得更新行的权限?谢谢。
发布于 2012-09-05 06:36:44
不能确切地确定您试图完成的是什么,但是如果inserted
(更新后的值)和deleted
(更新前的值)都存在,那么您可以测试它是否是UPDATE
。从documentation
deleted表存储DELETE和UPDATE语句期间受影响行的副本。在执行DELETE或UPDATE语句期间,将从触发器表中删除行,并将其传输到已删除的表中。删除的表和触发器表通常没有共同的行。
插入的表存储INSERT和UPDATE语句期间受影响行的副本。在insert或update事务期间,新行将同时添加到插入的表和触发器表中。插入的表中的行是触发器表中新行的副本。
因此,如果inserted
存在但不存在deleted
,则它是INSERT
;如果deleted
存在但不存在inserted
,则它是DELETE
;如果两者都存在,则它是UPDATE
。
https://stackoverflow.com/questions/12272261
复制相似问题