有一列,类型为NTEXT,不过如果字符超过8000的话会出现'字符长度匹配'而终止数据插入,请问该如何解决?
注:在access中设了一个存有9000多字符的列,导入sql以后,显示的类型为ntext,没有发现特殊的设置却可以存储.恕鄙人愚昧,请高手帮忙.

解决方案 »

  1.   

    zjcxc(邹建)
    化解字符串不能超过8000的方法及交叉表的处理
    http://blog.csdn.net/zjcxc/archive/2003/12/29/20075.aspx
      

  2.   

    谢谢兄弟了,不过我的问题是关于数据类型的,而不是sql语句过长的问题.
      

  3.   

    sql2000 好像没办法了吧,分割字符串 吧,然后加个标识,读的时候再吧几行加起来
      

  4.   

    不会那么麻烦吧,access中9000多个字符是可以导进去的.应该可以方便存储的.sql2000不该有这么大的BUG吧
      

  5.   

    很正常,用Oracle4000多个字符就显不出来了,还要换驱动
      

  6.   

    sql要用textptr和UPDATETEXT两个函数配合比较麻烦,看下帮助吧- -!!我从来没用过
      

  7.   

    SQL SERVER是以8K数据页存储数据的,超过8K是不行的,会导致数据写失败!
      

  8.   

    Text类型,最多可以放2G还是4G,反正是很大很大。
      

  9.   

    我将常将文件转换为base64编码,然后存到Text中去。
      

  10.   

    而且二进制类型似乎除了Image,没有其它Blob类型。
      

  11.   

    我以前也碰到过!把sql语句优化了
      

  12.   

    众兄弟们!存储过程可以解决!
    create    procedure dbo.addnews
    @type_id varchar (66) = NULL ,
    @content ntext = NULL ,
     as 
    insert news([Type_ID],Content)values (@type_id,'')DECLARE @ptrval binary(16)
    SELECT @ptrval = TEXTPTR(content) 
    FROM news 
    WHERE News_ID = @@identity
    writeTEXT News .Content @ptrval  @content
      

  13.   

    不要采用 char 系列
    采用 text 或者 ntext