本帖最后由 ahwood 于 2013-01-02 17:49:43 编辑

解决方案 »

  1.   

    你是超过4000存不进去?还是觉得存不进去?字符型的数据的长度好像要用这个来查的:
    select datalength(@v)
      

  2.   

    确定下content在表中的字段类型是不是nvarchar(max)
      

  3.   

    可能是存储过程或者函数写入时截断了,楼主自己检查一下, SQLSERVER是没有这个限制的。
      

  4.   

    不会出现楼主的情况
    declare @article table(content nvarchar(max))
    insert into @article select cast(REPLICATE('A',4000) as nvarchar(max))+REPLICATE('B',4000)declare @v nvarchar(max)
    select @v=(content) from @article 
    select len(@v)
    /*
    8000
    */
      

  5.   

    declare @v nvarchar(max)
    set @v=space(8000)
    set @v=@v+space(3456)
    select len(@v)
    /*
    --------------------
    11456(1 行受影响)*/
      

  6.   

    的确是我一个自动生成CLR的函数写错了导致数据截断,谢谢3楼提醒。