这是什么意思? msg 156使用MERGE时

时间:2013-10-11 08:26:01

标签: sql-server tsql merge

我对编程很陌生。

执行查询时会出现此消息:

  

第15行,第1行,第1行,第1行   关键字“As”附近的语法不正确。

你能告诉我它有什么问题吗?

 MERGE Table_2 As target
    USING Table_1 AS SOURCE 
    ON (TARGET.ID = SOURCE.ID) 

 WHEN MATCHED AND TARGET.FirstName <> SOURCE.FirstName 
    OR TARGET.LastName <> SOURCE.LastName THEN 
    UPDATE SET TARGET.FirstName = SOURCE.FirstName, 
    TARGET.LastName = SOURCE.LastName 

 WHEN NOT MATCHED BY TARGET THEN 
    INSERT (ID, FirstName, LastName) 
    VALUES (SOURCE.ID, SOURCE.FirstName, SOURCE.LastName)

 WHEN NOT MATCHED BY SOURCE THEN 
    DELETE

1 个答案:

答案 0 :(得分:1)

也许您的数据库处于错误的兼容级别,或者您的服务器不是SQL 2008或更高版本。你跑步时得到什么:

  • select compatibility_level from sys.databases where name=db_name()

  • select @@VERSION

第一个应该100或更大,第二个SQL 2008或更晚。