SQLServer2017对象名STRING_SPLIT无效

问题

SQL Server 2017在使用“STRING_SPLIT”方法时报错:

1
select * from STRING_SPLIT('1,2,3,4,5',',')
1
2
消息 208,级别 16,状态 1,第 3
对象名 'STRING_SPLIT' 无效。

原因

STRING_SPLIT方法要求数据库的兼容级别至少为130。当级别小于130时,SQL Server无法找到STRING_SPLIT函数。

STRING_SPLIT方法介绍可参考:https://docs.microsoft.com/en-us/sql/t-sql/functions/string-split-transact-sql?view=sql-server-ver15

使用以下SQL语句查看数据库的兼容级别:

1
SELECT compatibility_level FROM sys.databases WHERE name = 'DBName'

解决方法

使用以下SQL语句修改数据库兼容级别:

1
ALTER DATABASE [DatabaseName] SET COMPATIBILITY_LEVEL=140

140代表SQLServer2017

作者

Junle

发布于

2021-12-30

更新于

2024-03-22

许可协议

评论