2

我已经在这个小提琴中完成了我所知道的关于 MERGE 的所有事情,但没有得到输出。希望有人会为此提出解决方案。

我已经做了一个简单的 MERGE 语句来同时使用源表插入、更新和删除目标表的值,一切都很好,但我收到错误消息说

错误 - MERGE 语句必须以分号 (;) 终止

我已经放了分号,但错误不断弹出。我正在研究 MERGE 语句以及如何使用 SQLFiddle 使用两个表来使用它们,有人请告诉我放置分号的正确方法。

这是小提琴 - 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

试试这个SQL Fiddle@T定义是错误的,我还删除了分号,DELETE并将 SQL Fiddle 上的查询终止符更改为GO而不是分号。

于 2012-12-14T09:36:52.953 回答