我有一个表,我需要将一个值从一列移动到另一列,然后在原始列中设置一个新值。
declare @foo table (A int, B int);
insert into @Foo select 1, 0;
update @Foo
set B = A,
A = 2;
更新后B
总是包含1
或者是这种非确定性的行为,它有时会2
因为 A 被首先更新而具有一个值(而且我所有的测试从来没有达到恰到好处的条件2
)?
作为后续问题,如果答案是“B
将永远是1
”,如果我执行以下操作,我仍然会得到相同的结果吗?
update @Foo
set A = 2,
B = A;