通过substring来截取字符串,发现length的最大值只能有4000,超过4000的字符串的字符串就不会被截取到,有没有什么替代方法呢?
declare @ss varchar(max)
select @ss=substring(Content,5179,4100) from SL_Article where articleId=155
print len(@ss)其中需要的100个字符串就不会被截取到

解决方案 »

  1.   

    莫非是sqlserver的bug,sqlserver帮助文档中都说length 可以是 bigint 类型。expression 是字符串、二进制字符串、文本、图像、列或包含列的表达式。不要使用包含聚合函数的表达式。start 指定子字符串开始位置的整数。start 可以为 bigint 类型。length 一个正整数,指定要返回的 expression 的字符数或字节数。如果 length 为负,则会返回错误。length 可以是 bigint 类型。
      

  2.   

    declare @ss varchar(max)
     select @ss=substring(Content,5179,4000)+substring(Content,9179,100) from SL_Article where articleId=155
     print len(@ss)