SQL Server 是否支持在同一语句中使用一个列值更新另一列,同时更新第一列?

问题描述 投票:0回答:1

例如:

UPDATE Table1 SET Column1 = Column2, Column2 = Column3

这是否保证总是会导致这样的更新:

之前:

第1栏 第2栏 第3栏
10 200 3000

之后:

第1栏 第2栏 第3栏
200 3000 3000

快速实验表明它有效,但我在 MSDN 上找不到任何明确说明它有效的内容。

sql-server t-sql
1个回答
0
投票

是的,结果会如你所愿。 SQL Server 将更新作为基于集合的操作执行,因此逻辑上更新会同时发生。人们甚至可以颠倒列顺序以获得相同的结果:

UPDATE Table1 SET Column1 = Column2, Column2 = Column3;
UPDATE Table1 SET Column2 = Column3, Column1 = Column2;
© www.soinside.com 2019 - 2024. All rights reserved.