SQL Server触发器和INSERTED和DELETED表记录

时间:2014-04-01 08:36:39

标签: triggers sql-server-2008-r2

当运行批处理UPDATE语句(即一次更新多个记录的语句)时,Inserted和Deleted表是否包含相同数量的记录,并且是相同顺序的记录(即。插入对应于已删除的pos 0处的记录?

也...

我有更新声明......

UPDATE table SET column = value WHERE id = idvalue

如果最初,该列的值为1,并且更新设置列的值= 1,则insert和deleted表都有一条记录,并且该列被标记为已更改(即使它没有& #39; T)。这是正常行为吗?

1 个答案:

答案 0 :(得分:0)

表没有固有的顺序。如果您希望关联inserteddeleted之间的行,那么 IDENTITY)。否则,无法确定哪些行彼此对应 1

是的,即使没有发生实际数据更改,触发器触发以及行存在也是正常的。


1 的确,有一些优化可以将UPDATE分解为INSERTDELETE,然后重新组合成{{ 1}}实际上"改变"不同的列 - 总体而言,表中存在正确的最终行,但实际切换了哪些更新。