我编写了一个存储过程来更新表中的数据。它看起来像这样:
UPDATE dbo.sample
SET column_a += @value
WHERE id = @id
我发现它没有先更新总和。结果类似于以下命令:
UPDATE dbo.sample
SET column_a = @value
WHERE id = @id
我必须使用SET column_a = column_a + @value
它才能正确更新。我想知道为什么 SQL Server 在分配给左侧之前不会对右侧的表达式求和。我用变量进行了测试,它可以工作。它不仅在这种情况下有效。
我现在使用的命令是:
UPDATE dbo.sample
SET column_a = column_a + @value
WHERE id = @id