当运行批处理UPDATE语句(即一次更新多个记录的语句)时,Inserted和Deleted表是否包含相同数量的记录,并且是相同顺序的记录(即。插入对应于已删除的pos 0处的记录?
也...
我有更新声明......
UPDATE table SET column = value WHERE id = idvalue
如果最初,该列的值为1,并且更新设置列的值= 1,则insert和deleted表都有一条记录,并且该列被标记为已更改(即使它没有& #39; T)。这是正常行为吗?
答案 0 :(得分:0)
表没有固有的顺序。如果您希望关联inserted
和deleted
之间的行,那么 由IDENTITY
)。否则,无法确定哪些行彼此对应 1 。
是的,即使没有发生实际数据更改,触发器触发以及行存在也是正常的。
1 的确,有一些优化可以将UPDATE
分解为INSERT
和DELETE
,然后重新组合成{{ 1}}实际上"改变"不同的列 - 总体而言,表中存在正确的最终行,但实际切换了哪些列更新。