SQLServer2017对象名STRING_SPLIT无效
问题
SQL Server 2017在使用“STRING_SPLIT”方法时报错:
1 | select * from STRING_SPLIT('1,2,3,4,5',',') |
1 | 消息 208,级别 16,状态 1,第 3 行 |
原因
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
SQLServer2017对象名STRING_SPLIT无效