2013-10-11 56 views
0

我對編程有點新鮮。這是什麼意思? msg 156使用MERGE時

消息156,15級,狀態1,行
關鍵字 '作爲' 附近有語法錯誤:

這個消息時,我執行我的查詢會出現。

你能告訴我它有什麼問題嗎?

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 
+3

給定的合併語句工作得很好,只是在末尾丟失了一個分號,這是必須終止合併語句。這是您嘗試執行的唯一聲明嗎? – Deepshikha

+0

是的,先生,這是唯一的聲明即時執行,但它會返回:關鍵字'As'附近的語法不正確。 – user2837650

+0

您可以請分享表結構和一些示例數據以更好地分析原因。 – Deepshikha

回答

1

也許您的數據庫處於錯誤的兼容級別或者您的服務器不是SQL 2008或更高版本。你明白了什麼,當你運行:

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

  • select @@VERSION

你應該得到第一和SQL 2008或更高版本的第二100或更大。