【问题标题】:OPENJSON does not work in SQL Server?OPENJSON 在 SQL Server 中不起作用?
【发布时间】:2016-07-28 00:23:16
【问题描述】:

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

消息 208,第 16 级,状态 1,第 1 行
无效的对象名称“openjson”。

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

【问题讨论】:

  • 你能把所有的SQL都贴出来吗?
  • 也选择@@version 信息会有所帮助

标签: sql-server json sql-server-2016


【解决方案1】:

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

ALTER DATABASE database_name SET COMPATIBILITY_LEVEL = 130

另外,如果您在 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) 微软公司

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

问候,

乔万

【讨论】:

  • 感谢 Jovan,这是因为兼容性级别。它适用于 130。
  • 现在我的错误是“数据库兼容级别的有效值为 90、100 或 110”。
  • 您说的是 Azure SQL 数据库还是某些 SQL Server 版本? Azure SQL 应该具有所有可用的兼容性级别。
  • @DurgeshPandey 如果您运行 SELECT @@VERSION,您将看到您正在运行 SQL Server 2012(兼容级别 110),因此错误消息告诉您无法更改版本的兼容级别比您拥有的更新的 SQL Server,即 SQL Server 2016(兼容级别 130)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-10-08
  • 2011-07-22
  • 2015-11-28
  • 1970-01-01
  • 2018-05-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多