我需要调试(也就是反向工程)SQL Server触发器。触发器是AFTER INSERT, UPDATE
触发器。
在触发器的开头,有以下IF
子句:
if not exists(select 1 from inserted) and not exists(select 1 from deleted)
begin
print 'something'
return
end
代码会运行到此IF
并打印文本something
。我想知道,为什么会这样?我在相应的表上执行UPDATE
来触发触发器。 IF
基本上变为 true ,当它不是插入而不是删除时。因此,我想知道为什么执行print
语句,因为UPDATE
本质上是DELETE
+ INSERT
。
答案 0 :(得分:2)
只有当UPDATE
语句没有修改任何行时,条件才会成立。