SQL Server 2019执行OPENJSON函数提示‘OPENJSON' is not a recognized built-in function name’,是否需启用相关功能?
解决OPENJSON未被识别的问题
这个问题我之前也碰到过,OPENJSON虽然在SQL Server 2016及以上版本就支持,但有几个容易踩的坑,咱们一步步排查:
确认连接的实例确实是SQL Server 2019
有时候SSMS会默认连接旧版本的实例,或者你安装了多个SQL Server版本没注意切换。先运行这个查询验证:SELECT @@VERSION;确保返回结果里明确是
Microsoft SQL Server 2019 - 15.0.4236.7 (X64),如果不是,说明你连接错了实例,切换到2019的实例即可。核实数据库兼容性级别达标
OPENJSON要求数据库的兼容性级别至少为130(对应SQL Server 2016),你提到设置的是150,但最好实际查询确认:SELECT name, compatibility_level FROM sys.databases WHERE name = '你的数据库名称'; -- 替换为mytable所在的数据库名如果查询结果里
compatibility_level低于130,执行下面的语句修改:ALTER DATABASE 你的数据库名称 SET COMPATIBILITY_LEVEL = 150; -- 130及以上版本都可支持OPENJSON检查查询上下文
确保你是在目标数据库的上下文里执行查询,比如先运行USE 你的数据库名称;,再执行SELECT OPENJSON ([fieldname]) FROM mytable;,避免因为选错数据库导致的问题。
内容的提问来源于stack exchange,提问作者Michael
相关产品推荐
相关产品推荐

