我想在Azure SQL DB中使用OPENJSON
函数,但是当我尝试执行该函数时,出现以下错误:
无法识别消息195,级别15,状态10,第25行“ OPENJSON” 内置函数名称。
我研究发现link这句话是
OPENJSON函数仅在兼容级别130或更高版本下可用。如果您的数据库兼容性级别低于130,则SQL Server无法找到并运行OPENJSON函数。所有兼容级别的其他JSON函数都可用。
根据建议,使用以下内容检查兼容性级别
select * from sys.databases
,确认为140,高于最低要求。
那么,行不通吗?
答案 0 :(得分:0)
理想情况下,如果兼容级别为130或更高,它应该可以工作。
答案 1 :(得分:0)
三个步骤可能会为您提供帮助:
1。检查您的SQL Server版本(从2016开始)。
2。检查Azure SQL数据库的不兼容性级别为130或更高。
3。检查您的Azure SQL数据库版本。
运行select @@version
以查看它是否是V12服务器。
如果看到较低的版本(例如11.xxx),则可能是在不支持JSON的旧体系结构上建立了数据库。您需要将Azure SQL数据库更新到最新的V12版本。
参考:OPENJSON does not work in SQL Server?
希望这会有所帮助。
答案 2 :(得分:0)
OPENJSON是一个表值函数,它必须出现在表表达式的有效位置。
EG
select openjson('{}')
失败
无法识别消息195,级别15,状态10,第29行“ openjson” 内置函数名称。
但是
select * from openjson('{}')
有效。