SQL Server触发器:INSERTED和DELETED不存在。它是什么?

时间:2016-11-22 13:05:36

标签: sql sql-server triggers insert

我需要调试(也就是反向工程)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

1 个答案:

答案 0 :(得分:2)

只有当UPDATE语句没有修改任何行时,条件才会成立。