解决方案 »

  1.   

    截断是PRINT干的事,不关MAX啥事
    PRINT只能8000
      

  2.   

    varchar(Max)可以放2G容量,记住是容量不是长度,print不会显式完全信息。
    另外:
    @BarCode varchar(Max),@BarCodeCur nvarchar(16) 这里,如果没必要,不要一个用varchar一个用nvarchar
      

  3.   

    varchar(Max)中Max最大8000,汉字算2个字符
    nvarchar(Max)中Max最大4000,汉字算1个字符
      

  4.   

    LZ 在最后加一个输出语句
    print len(@BarCode)    -- 这个的输出,应该是大于 8000 的。
      

  5.   

    验证一下长度
    --print @BarCode
    print convert(varchar(11),len(@Barcode))
    print convert(varchar(11),(len(@BarCodeCur)+1)*(@id-1))
    8250
    8250