OPENJSON在SQL Server中不起作用?

Iva*_*Iva 30 sql-server json sql-server-2016

我想在SQL Server 2016中使用JSON函数,但是当我尝试执行OPENJSON函数时,我收到以下错误:

消息208,级别16,状态1,行1
无效的对象名称'openjson'.

为什么它不起作用?我有SQL Server 2016 RC版本.

Jov*_*SFT 76

你能检查数据库的兼容级别吗?OPENJSON在兼容级别130下可用.您可以尝试执行:

ALTER DATABASE database_name SET COMPATIBILITY_LEVEL = 130
Run Code Online (Sandbox Code Playgroud)

此外,如果您在Azure SQL数据库上使用JSON,请注意即使是新的数据库也是在120兼容级别下创建的,因此如果要使用OPENJSON,则应更改它.此外,如果您在Azure SQL数据库中使用它,请运行select @@ version以查看此V12服务器.你应该看到类似的东西:

Microsoft SQL Azure(RTM) - 12.0.2000.8 2016年3月25日15:11:30版权所有(c)Microsoft Corporation

如果您看到一些较低版本(例如11.xxx),您可能在旧架构上拥有不支持JSON的数据库.

问候,

约万

  • 现在我的错误是“数据库兼容性级别的有效值为 90、100 或 110”。 (2认同)
  • @DurgeshPandey 如果您运行`SELECT @@VERSION`,您将看到您正在运行 SQL Server 2012(兼容级别 110),因此该错误消息告诉您,您无法更改为 SQL Server 版本的兼容级别比您拥有的新,即 SQL Server 2016(兼容级别 130)。 (2认同)