私は2つのテーブル変数SQL Serverのマージクエリ - 重複しますか?
- まずテーブルを持っているが
1, 3, 5
- セカンドテーブルを持っている私は、次のクエリを実行すると
2, 4, 5
ただしました:
DECLARE @t1 TABLE (a int)
DECLARE @t2 TABLE (b int)
INSERT INTO @t1 (a) VALUES (1),(3),(5)
INSERT INTO @t2 (b) VALUES (2),(4),(5)
;WITH Source AS (
SELECT * from @t1
)
MERGE INTO @t2
USING Source ON 1 = 0
WHEN NOT MATCHED THEN
INSERT (b) VALUES (a);
SELECT * FROM @t2
を私は非完全取得マージされた結果:
代わり2, 4, 5, 1, 3
を得るための、私は二重の5
を参照してくださいなぜ2, 4, 5, 1, 3, 5
質問
を取得しますか?これはマージクエリであり、5は2番目のテーブルの5にマッチします。
「1 = 0」を使用する必要がありますか?それは常に偽です。あなたはCTEを必要としません。例えば、 'USING @ t2 as source 'と書くことができます。例えば、' MERGE INTO @ t2 @ t1をソースとして= b ... ' –