2

私はこのフィドルでMERGEについて知っていることをすべて行いましたが、出力が得られていません。誰かがこれに対する解決策を考え出すことを願っています。

ソーステーブルを使用してターゲットテーブルの値を同時に挿入、更新、削除するための簡単なMERGEステートメントを実行しましたが、すべて問題ありませんが、次のようなエラーメッセージが表示されます。

エラー-MERGEステートメントはセミコロン(;)で終了する必要があります

セミコロンを付けましたが、エラーが表示され続けます。MERGEステートメントと、SQLFiddleを使用して2つのテーブルを使用してそれらを使用する方法を調べています。セミコロンを配置する正しい方法を教えてください。

これがフィドルです-SQLFiddle

これがMERGEのコードです

MERGE Students AS T 

USING Teachers AS S
ON S.LastName = T. LastName and
S.FirstName = T.FirstName

WHEN MATCHED THEN
UPDATE SET T.Address = S.Address,
         T.Age = S.Age 

WHEN NOT MATCHED THEN
INSERT (LastName, 
      FirstName, 
      Address, 
      Age) 
      VALUES (S.LastName, 
      S.FirstName, 
      S.Address, 
      S.Age)

WHEN NOT MATCHED BY SOURCE THEN 
DELETE;

OUTPUT $action, Inserted.LastName, Inserted.FirstName, Deleted.LastName, Deleted.FirstName INTO @T;

Select * from @T;
4

1 に答える 1

1

このSQLFiddleを試してください。@T定義が間違っていました。また、後にセミコロンを削除し、SQLFiddleDELETEのクエリターミネータGOをセミコロンの代わりに変更しました。

于 2012-12-14T09:36:52.953 に答える