• 解决SQL错误(208):对象名‘string_split‘无效的正确方法,亲测有效!!!


    解决SQL错误(208):对象名‘string_split‘无效的正确方法,亲测有效!!!

    报错问题

    SQL Server错误(208)“对象名 ‘string_split’ 无效”通常表示你正在尝试使用 string_split 函数,但是你的SQL Server版本不支持这个函数。string_split 函数在SQL Server 2016 (13.x)及更高版本中可用

    报错原因

    1.拼写错误:检查函数名 string_split 是否正确拼写。

    2.数据库兼容级别:你的数据库可能设置为低于SQL Server 2016的兼容级别。你可以通过以下查询来检查数据库的兼容级别:
    下滑查看解决方法

    解决方法

    SELECT compatibility_level   
    FROM sys.databases   
    WHERE name = 'YourDatabaseName';
    
    • 1
    • 2
    • 3

    如果兼容级别低于130(对应于SQL Server 2016),你可能需要将其更改为130或更高。可以通过以下命令来更改:

    ALTER DATABASE YourDatabaseName   
    SET COMPATIBILITY_LEVEL = 130;
    
    • 1
    • 2

    SQL Server版本:确保你确实在SQL Server 2016或更高版本上运行查询。
    如果你使用的是SQL Server 2014或更早版本,或者出于某种原因不能使用 string_split 函数,你可以考虑使用其他方法来实现字符串分割。例如,可以使用XML方法或自定义函数来分割字符串。

    以下是一个使用XML方法分割字符串的示例:

    DECLARE @str NVARCHAR(MAX) = 'a,b,c,d,e'  
    SELECT   
        LTRIM(RTRIM(m.n.value('.[1]','nvarchar(4000)'))) AS split_value  
    FROM (  
        SELECT CAST('' + REPLACE(@str,',','') + '' AS XML) AS x  
    ) AS t  
    CROSS APPLY x.nodes('/XMLRoot/RowData') AS m(n)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    这个查询将返回

    split_value  
    -----------  
    a  
    b  
    c  
    d  
    e
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    请注意,这种方法可能比使用 string_split 函数更慢,并且不如 string_split 函数直观。如果你经常需要分割字符串,考虑升级到支持 string_split 的SQL Server版本,或者创建一个自定义函数来简化此过程。
    以上内容仅供参考,具体问题具体分析,如果对你没有帮助,深感抱歉。

  • 相关阅读:
    LVS-NAT模式部署
    论文笔记:Large Language Model for Participatory Urban Planning
    Dubbo架构篇 - 服务路由
    网课查题公众号搭建——内含查题接口及独立后台
    动态内存管理
    Kafka生产者发送流程详解
    10月26日,每日信息差
    ffmpeg 简单教程
    【ICML 2018】Noise2Noise: Learning Image Restoration without Clean Data
    NC15665 maze
  • 原文地址:https://blog.csdn.net/2301_79779756/article/details/138074238