【发布时间】:2019-07-19 13:07:07
【问题描述】:
我正在尝试在 SQL Server 2016 上运行的数据库中使用 OPENJSON,并在运行这个简单的测试查询时出现以下错误(在不同的 2016 数据库上运行良好)
select * from OPENJSON('{ "test": "test" }')
Invalid object name 'OPENJSON'.
我知道兼容性级别设置,但在此数据库上似乎并非如此。它的兼容级别已经设置为 130。这个特定的数据库是从旧的 2008R2 数据库迁移而来的。我们还需要做些什么来访问OPENJSON 函数吗?
编辑
作为测试,我在同一个数据库服务器上创建了一个新的空数据库,上面的查询工作正常。所以数据库服务器似乎不是问题,它与我们迁移的一个数据库有关。
如果这很重要,我以SA 帐户连接。
【问题讨论】:
-
什么是
select @@VERSION? -
@MartinSmith
Microsoft SQL Server 2016 (SP1) (KB3182545) - 13.0.4001.0 (X64) Oct 28 2016 18:17:30 Copyright (c) Microsoft Corporation Enterprise Edition (64-bit) on Windows Server 2016 Standard 6.3 <X64> (Build 14393: ) (Hypervisor) -
听起来数据库确实不兼容 130。
SELECT compatibility_level FROM sys.databases WHERE name = 'YourDatabase';返回什么? -
@Larnu
SELECT compatibility_level FROM sys.databases WHERE name = 'MyDB';返回130针对我创建的新空测试数据库的相同查询也返回130 -
感谢@Larnu 和 Martin Smith 的帮助......这真的很奇怪和莫名其妙
标签: tsql sql-server-2016 open-json