sql 2000  字符类型的极限是8060我在拼写员工编号的时候  当超过8060的字符时候 就无法继续拼写下去我又不想每次都去判断是否超过8060的长度 是不是有好的办法

解决方案 »

  1.   

    不能使用 text or ntext
    declare @str text
    错误
    对于局部变量,text、ntext 和 image 数据类型无效。
      

  2.   

    拼到多个变量中, exec时,可以突破8k限制。exec(@s1 + @s2 + ..)
      

  3.   

    楼上的办法是可行但是现在比如我有10万个员工ID  每个占6位declare @EmployeeID varchar(20)我循环的时候每次都要判断  效率上会降低吧
     if(len(@s1)<8000)
    begin
    @s1=@s1+@EmployeeID 
    end
    else if(len(@s2)<8000)
    begin
    @s2=@s2+@EmployeeID 
    end 
      

  4.   

    不需要判断,预估就可以了。预估时, 留点浮动空间, 比如6或7000一段。比如一个员工占6位, 它所拼sql的sql可以预估长度,比如说是20,
    那么以6000一段的话, 可以有300个员工 拼出一个变量
      

  5.   

    我也是这么想的 看来在sql2000中没有更好的办法了