我正在查看SQL中的存储过程,并且遇到了一个奇怪的更新语句。它是这样的。
UPDATE dbo.Table_name
SET [Column_name] = [Column_name]
WHERE [Column_ID] = '2564-5131'
我无法理解此更新声明的重要性。
我是SQL的新手,所以可能会在这里遗漏一点。
修改
我检查了表格定义中的触发器,如下面的一些评论中提到但没有找到任何内容。
表格定义仅包含这些
答案 0 :(得分:0)
这本身没有任何作用,但可能会在表上定义一个触发器,用于执行某些操作的更新。检查触发器的表定义。
答案 1 :(得分:0)
好的,所以我设法弄清楚这个更新的作用,并且想到会在这里记录它。
事实证明,这个确切的更新语句存在于多个存储过程中,并且此非功能更新充当这些存储过程之间的显式锁定。它会导致所有存储过程序列化。
我想这不是最大吞吐量的最佳设计。显然这样做是为了避免在存储过程未被序列化时观察到的许多死锁。