Tsql OPENJSON在兼容级别设置为130的SQL Server 2016上不可用

Tsql OPENJSON在兼容级别设置为130的SQL Server 2016上不可用,tsql,sql-server-2016,open-json,Tsql,Sql Server 2016,Open Json,我试图在SQL Server 2016上运行的数据库中使用OPENJSON,当运行这个简单的测试查询时,会出现以下错误,该查询在另一个2016数据库上运行良好 从OPENJSON{test:test}中选择* 无效的对象名称“OPENJSON” 我知道兼容性级别设置,但在这个数据库上似乎不是这样。它的兼容性级别已经设置为130。此特定数据库是从旧的2008R2数据库迁移而来的。我们还需要做些什么来访问OPENJSON函数吗 编辑 作为测试,我在同一个数据库服务器上创建了一个新的空数据库,上面的查

我试图在SQL Server 2016上运行的数据库中使用OPENJSON,当运行这个简单的测试查询时,会出现以下错误,该查询在另一个2016数据库上运行良好

从OPENJSON{test:test}中选择*

无效的对象名称“OPENJSON”

我知道兼容性级别设置,但在这个数据库上似乎不是这样。它的兼容性级别已经设置为130。此特定数据库是从旧的2008R2数据库迁移而来的。我们还需要做些什么来访问OPENJSON函数吗

编辑

作为测试,我在同一个数据库服务器上创建了一个新的空数据库,上面的查询工作正常。所以数据库服务器似乎不是问题所在,它与我们迁移的数据库有关


如果有关系的话,我是SA账户的联系人

从SSMS gui和从sys.databases运行SELECT compatibility_level,其中name='MyDB',数据库报告的兼容性级别为130

为了测试,我运行了alterdatabasemydb SET COMPATIBILITY_LEVEL=130,现在一切正常。我不知道是什么原因造成的

编辑


我想我现在知道是什么导致了这种奇怪的行为。表现出这种行为的数据库是一个dev数据库,它每天早上都通过prod数据库的复制创建。经过进一步研究,prod数据库没有设置为兼容级别130,而是设置为100。我认为,当复制发生并从prod日志文件恢复dev DB时,即使dev DB设置为130,两者之间也存在不匹配的情况。从那以后,我也把prod提高到了130,今后一切都会很好

选择@版本是什么?@MartinSmith Microsoft SQL Server 2016 SP1 KB3182545-13.0.4001.0 X64 2016年10月28日18:17:30版权所有c Microsoft Corporation Enterprise Edition 64位Windows Server 2016标准6.3 Build 14393:虚拟机监控程序听起来数据库真的不兼容130。从sys.databases(其中name='YourDatabase')中选择什么兼容性_级别;return?@Larnu从sys.databases中选择compatibility_level,其中name='MyDB';返回130针对我创建的新空测试数据库的相同查询,也返回130感谢@Larnu和Martin Smith的帮助。。。这真的很奇怪和令人困惑