在SQL Server 2016中,我使用STRING_SPLIT函数
收到此错误SELECT * FROM STRING_SPLIT('a,b,c',',')
错误:
无效的对象名称'STRING_SPLIT'。
答案 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