MERGE语句问题 - 分号错误(SQL Server 2008)

时间:2012-12-14 09:17:31

标签: sql sql-server-2008

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

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

Error - A MERGE statement must be terminated by a semi-colon (;)

我已经放了分号但是错误不断出现。我正在研究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;

1 个答案:

答案 0 :(得分:1)

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