HOME >> Tips >> Microsoft SQL Server

MERGE 文で 10739 エラーが発生する

2014/4/25
文書番号:20312

MERGE 文で 以下のエラーが発生しました。

==============================================================
メッセージ 10739、レベル 15、状態 1、行 11
MERGE ステートメントで使用される INSERT 列リストに、マルチパート識別子を含めることはできません。代わりに、シングルパート識別子を使用してください。
==============================================================


MERGE TAB_A
USING (SELECT @KEY1 AS キー1
             ,@KEY2 AS キー2
) TAB_B
ON  TAB_A.Column1 = TAB_B.キー1
AND TAB_A.Column2 = TAB_B.キー2
WHEN MATCHED THEN
    UPDATE
    SET TAB_A.Value1 = @VAL_1
       ,TAB_A.Value2 = @VAL_2
WHEN NOT MATCHED THEN
    INSERT (
         TAB_A.Column1
        ,TAB_A.Column2
        ,TAB_A.Value1
        ,TAB_A.Value2
    )
    VALUES (
         TAB_B.キー1
        ,TAB_B.キー2
        ,@VAL_1
        ,@VAL_2
    );
SQL Server の MERGE 文では上記INSERTの部分にテーブル名を修飾するとエラーになります。
列名のみ記載すると問題なく実行できます。