我在我的存储过程中使用了Merge
语句,并且它在开发服务器上工作正常,但是当我将其更新到我的客户端系统之一时,它给出了以下错误。
MERGE'附近的语法不正确。您可能需要将当前数据库的兼容级别设置为更高的值才能启用此功能。请参阅ALTER DATABASE的SET COMPATIBILITY_LEVEL选项的帮助。
答案 0 :(得分:1)
此错误是服务器错误,SSMS与它无关。请用
的结果更新您的问题select @@version;
select compatibility_level
from sys.databases
where name = 'yourDB'
如果您的服务器版本是< = 2005,那么您无能为力,但似乎您的服务器版本更高,只有数据库兼容级别低(您需要至少100)
答案 1 :(得分:0)
在这种情况下(当DB的兼容级别为<100时),您可以像这样在MERGE之前和结尾使用分号:
;MERGE t1
USING t2
ON ...
INSERT (...)
VALUES (...);
这可能有所帮助,因为在较低的兼容级别中,SQLServer在MERGE之前的语句结尾需要分号。