我正在尝试在SQL Server 2016上运行的数据库中使用OPENJSON
,并且在运行此简单的测试查询(在其他2016数据库上正常运行)时出现以下错误
select * from OPENJSON('{ "test": "test" }')
Invalid object name 'OPENJSON'.
我了解兼容性级别设置,但是在该数据库上似乎并非如此。它的兼容性级别已经设置为130。该特定数据库是从旧的2008R2数据库迁移而来的。要访问OPENJSON
函数,我们还需要做其他事情吗?
编辑
作为测试,我在同一数据库服务器上创建了一个新的空数据库,上面的查询工作正常。因此,数据库服务器似乎不是问题,这与我们迁移的一个数据库有关。
如果有关系,我将以SA
帐户身份连接。
答案 0 :(得分:0)
通过SSMS gui并运行insertText
除了测试外,没有其他原因,我运行了SELECT compatibility_level FROM sys.databases WHERE name = 'MyDB';
,现在一切正常。我不知道会导致什么。
编辑
我想我知道是什么导致了奇怪的行为。表现出这种行为的数据库是一个dev数据库,它每天早晨通过prod数据库中的复制创建。经过更多研究后,prod数据库的兼容性级别不是设置为130,而是设置为100。我认为,即使将dev db设置为130,当复制发生并从prod日志文件恢复了dev DB时,两者之间不匹配。从那以后,我的产品产量也增加到了130个,今后一切都会很好。