SQL Server 2016,无效的对象名称'STRING_SPLIT'

时间:2017-11-09 15:36:14

标签: sql sql-server tsql sql-server-2016

在SQL Server 2016中,我使用STRING_SPLIT函数

收到此错误
SELECT * FROM STRING_SPLIT('a,b,c',',')

错误:

  

无效的对象名称'STRING_SPLIT'。

4 个答案:

答案 0 :(得分:27)

确保数据库兼容级别为 130

您可以使用以下查询进行更改:

ALTER DATABASE [DatabaseName] SET COMPATIBILITY_LEVEL = 130

答案 1 :(得分:3)

如果您不能更改正在使用的数据库的COMPATIBILITY_LEVEL,则可以尝试查看同一服务器上的其他数据库,以找到具有更高COMPATIBILITY_LEVEL的数据库。我发现目标服务器上的“主”数据库位于COMPATIBILITY_LEVEL = 140,因此我连接到该数据库,然后执行查询,该查询实际上是针对其他数据库中的(完全限定)表在COMPATIBILITY_LEVEL小于130的服务器上运行。只需使用

查询服务器上的各种数据库
SELECT compatibility_level  FROM sys.databases WHERE name = '<database_name>'; 

找到> = 130的一个。

答案 2 :(得分:1)

我当时使用的是Split_string,英语感觉语法上是正确的,但是我的老眼睛看不到应该STRING_SPLIT……所以,如果您有点精神上的挑战,例如我,然后检查您是否正确输入了命令! :)

答案 3 :(得分:0)

您需要更改数据库的兼容级别。 为此,请尝试以下查询并将您的兼容性级别更改为 150。

ALTER DATABASE [Database_Name] SET COMPATIBILITY_LEVEL = 150