ある列から別の列に値を移動してから、元の列に新しい値を設定する必要があるテーブルがあります。
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;