0

同じ状況を示すこの質問を見つけました。セット ベースの更新を実行しようとしていますが、更新するテーブルが更新値に使用されているテーブルの複数の行に一致します。最小限の例を以下に示します。

CREATE TABLE #tempUpdates (ID INT, TheValue VARCHAR(100))

CREATE TABLE #Target (ID INT, TheValue VARCHAR(100))

INSERT INTO #Target (ID, TheValue)
VALUES (1, 'START')

INSERT INTO #tempUpdates (ID, TheValue)
VALUES (1, 'tUpdate'),
(1, 'SecondUpdate')

UPDATE t
SET t.TheValue = u.TheValue
FROM #Target t
INNER JOIN #tempUpdates u ON u.ID = t.ID

SELECT * FROM #Target

他の質問の回答では、特定の更新値を取得する方法について説明しました。私が疑問に思っているのは、上記の例または他の同様の状況で、SQL Server はどの値が新しい値であるかをどのように決定するのでしょうか? 最初の行が返されましたか?他の何か?

4

0 に答える 0