私の質問は、単一の更新ステートメントでの更新の順序に関係しています。SELECT
ステートメントを使用して変数を設定すると、変数が順番に設定されることがわかりました。例えば:
SELECT
@Test1 = 2,
@Test2 = @Test1 + 1
設定操作が順番に行われるため、この時点で@Test1
になります。しかし、どうなりますか?2
@Test2
3
UPDATE
UPDATE TestTable SET
Test1 = 2,
Test2 = Test1 + 1
Test2
の初期値を計算に使用しますTest1
か、それとも設定した値を使用しますか? UPDATE
内のステートメントである場合、違いはありMERGE
ますか?
MERGE INTO TestTable AS T
USING (
SELECT
Test1,
Test2
FROM SomeOtherTable
) AS S
ON S.Test1 = T.Test1
WHEN MATCHED THEN
UPDATE SET
T.Test1 = 2,
T.Test2 = T.Test1 + 1
;