分类: SQLServer
SQLServer 报错“消息 208,级别 16,状态 1,第 6 行 对象名 'STRING_SPLIT' 无效”的问题处理

开发在运行一SQL时报错:

消息 208,级别 16,状态 1,第 6 行 对象名 'STRING_SPLIT' 无效

处理方法:

-- 查看数据库兼容级别
SELECT compatibility_level FROM sys.databases WHERE name = 'dbname';

--如果不是130即兼容SQLServer2016的话修改下数据库兼容级别
ALTER DATABASE dbname SET COMPATIBILITY_LEVEL = 130;

STRING_SPLIT函数官方说明:

兼容性级别为 130
STRING_SPLIT 要求兼容性级别至少为 130。 级别低于 130 时,SQL Server 找不到 STRING_SPLIT 函数。
https://learn.microsoft.com/zh-cn/sql/t-sql/functions/string-split-transact-sql?view=sql-server-ver15

如果修改后SQL代码还报错,在SQL最前面加上USE dbname; 即可正常。

经过测试数据库版本是SQL2019版本其实不修改兼容级别直接在前面带上USE dbname;打开库操作也可使用STRING_SPLIT。

发表新评论