私の質問は、単一の更新ステートメントでの更新の順序に関係しています。SELECTステートメントを使用して変数を設定すると、変数が順番に設定されることがわかりました。例えば:
SELECT
@Test1 = 2,
@Test2 = @Test1 + 1
設定操作が順番に行われるため、この時点で@Test1になります。しかし、どうなりますか?2@Test23UPDATE
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
;