ある列から別の列に値を移動してから、元の列に新しい値を設定する必要があるテーブルがあります。
declare @foo table (A int, B int);
insert into @Foo select 1, 0;
update @Foo
set B = A,
A = 2;
更新後はB常に含まれているのでしょうか、1それともこの非決定論的な動作であり、2Aが最初に更新されたために値が設定されることがあります(そして、すべてのテストが適切な条件に達したことがない2)?
フォローアップの質問として、答えが「B常に1」である場合、次のことを行っても同じ結果が得られますか?
update @Foo
set A = 2,
B = A;