SQL 更新语句将相同的值设置回来



我正在查看SQL中的存储过程,并遇到了一个奇怪的更新语句。事情是这样的。

UPDATE dbo.Table_name
SET [Column_name] = [Column_name]
WHERE [Column_ID] = '2564-5131'

我不明白这个更新声明的意义。

我是SQL的新手,所以这里可能错过了一点。

编辑:

我检查了表定义的触发器,如下面的一些评论中所述,但没有找到任何东西。

表定义仅包含这些

  • 主键集群
  • 引用另一个表的外键
  • TinyInt 类型的列的约束,用于检查值是否在边界内
  • 和一列上的非聚集索引

这本身什么都不做,但表上可能为将执行某些操作的更新定义了一个触发器。 检查触发器的表定义。

好的,所以我设法弄清楚了该更新的作用,并认为会在此处记录它。

事实证明,此确切的更新

语句存在于多个存储过程中,并且此非功能性更新充当这些存储过程之间的显式锁。它会导致序列化所有存储的进程。

我想这不是实现最大吞吐量的最佳设计。显然,这样做是为了避免在存储的进程未序列化时观察到的许多死锁。

最新更新