为什么字段内容长时(>1万字符),update就显示超时的错误信息,比较短时就没问题?
如何可以做到长短都可以完成更新(在页面中update)?

解决方案 »

  1.   

    这个长的内容第一次用update是可以更新进数据库的,只是第二次执行update时显示超时错误,我必须在sql查询分析器中将该字段update成null后然后在页面中才能重新该字段内容.字符少时就没有该问题.
      

  2.   

    用updatetext来处理.
    -----------------------
    如何将asp中获取的表单内容用updatetext来更新text字段,像update一样写在页面中吗?用存储过程又如何做?
    字段
    id content
    表单域contenttext
      

  3.   

    可以向存储过程传递text类型的参数吗???
      

  4.   

    在存储过程中用updatetext我也试过了,同样的问题,还是长时出现超时错误,短则没有问题:)
    没有人可以给出解决方案吗?是sqlser2000不是2005
      

  5.   

    英文大约12000个字符,commandtimeout设为0后就半天出不来任何分析了,浏览器状态栏停留在载入一半的状态
      

  6.   

    对,UPDATETEXT
    UPDATETEXT
    更新现有 text、ntext 或 image 字段。使用 UPDATETEXT 在适当的位置更改 text、ntext 或 image 列的一部分。使用 WRITETEXT 来更新和替换整个 text、ntext 或 image 字段。语法
    UPDATETEXT { table_name.dest_column_name dest_text_ptr } 
        { NULL | insert_offset }
        { NULL | delete_length }
        [ WITH LOG ]
        [ inserted_data
            | { table_name.src_column_name src_text_ptr } ]
      

  7.   

    随便建立一个表测试都超时? 还是有多少数据的时候超时?sql版本是什么?
      

  8.   

    请帮我upup,..,谢了!
    sqlserver text字段的更新,超过3万字超时问题.
    处理程序段见另一同主题加分帖.
      

  9.   

    http://community.csdn.net/Expert/topic/4961/4961649.xml?temp=.502392 帮我up一下,谢了.
      

  10.   

    我也遇到问题了.大家帮忙呀
    --更新指定表的大字段内容
    create     PROCEDURE pms_SomeTableSomeField_Updatetext 
    (
        @TableName nvarchar(256),@FieldName nvarchar(256), @Content ntext ,@strID nvarchar(10)
        --表名                    字段名                     新的大字段内容  表的唯一标识
    )
    AS  
    BEGINDECLARE @EXEString NVARCHAR(4000)
    set @EXEString = 'DECLARE @ptrval binary(16)
    SELECT @ptrval = TEXTPTR('+@FieldName+') FROM '+@TableName+' WHERE [ID] = '+@strID
    + 'WRITETEXT '+@TableName+'.' + @FieldName + '  @ptrval ' +  @Content
    --更新大字段关键处                                旧的内容     新的内容--NVARCHAR与这个矛盾,但要用什么办法来构造一个动态的更新语句呢?
       EXEC sp_executesql @EXEString        
    END
      

  11.   

    可能是超过 SQL 的数据查询长度????????????
    关注
      

  12.   

    UPDATETEXT test.c  @ptrval 0 null @Content 
    应该可以啊
      

  13.   

    create procedure p_replacentext(@vTable varchar(50), @vField varchar(30),@vBefore varchar(8000),@vAfter varchar(8000))
    as
    begin
      Declare @Sql nvarchar(4000)
      declare @p_s varchar(800)
      Declare @p binary(16),@postion   int,@rplen   int   
      set @Sql=N'Select  @p=textptr('+@vField+'),@rplen=len('''+@vBefore+'''),@postion=patindex(''%'+@vBefore+'%'','+@vField+')-1 from '+@vTable   
      exec sp_executesql @Sql,N'@p binary(16) output,@rplen int output,@postion int output ',@p output,@rplen output,@postion output
      while @postion >= 0
      begin   
         exec master.dbo.xp_varbintohexstr @p, @p_s out
         set @Sql=N'updatetext '+@vTable+'.'+@vField+' '+@p_s+' '+cast(@postion as varchar(8))+' '+cast(@rplen as varchar(4))+' '''+@vAfter+''''
         print @Sql 
         exec(@Sql)
         set @Sql=N'select @postion=patindex(''%'+@vBefore+'%'','+@vField+')-1  from '+@vTable  
         exec sp_executesql @Sql,N'@postion int output ',@postion output
      end
    end  --测试
    create  TABLE t(col1 char(1000), col2 ntext)
    INSERT t SELECT '', 'aa北京中华人民共和国北京天安门北京asdsdf'+REPLICATE('a', 8000)
    select * from t
    exec p_replacentext 't','col2','aa','首都' 
    select * from t
    drop table t--结果
    aa北京中华人民共和国北京天安门北京asdsdfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa首都北京中华人民共和国北京天安门北京asdsdf首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都首都
    --后台执行(所影响的行数为 1 行)
    (所影响的行数为 1 行)updatetext t.col2 0xFFFF0812000000003801000001000000 0 2 '首都'
    updatetext t.col2 0xFFFF0812000000003801000001000000 24 2 '首都'
    updatetext t.col2 0xFFFF0812000000003801000001000000 26 2 '首都'
    updatetext t.col2 0xFFFF0812000000003801000001000000 28 2 '首都'
    updatetext t.col2 0xFFFF0812000000003801000001000000 30 2 '首都'
    updatetext t.col2 0xFFFF0812000000003801000001000000 32 2 '首都'
    updatetext t.col2 0xFFFF0812000000003801000001000000 34 2 '首都'
    updatetext t.col2 0xFFFF0812000000003801000001000000 36 2 '首都'
    updatetext t.col2 0xFFFF0812000000003801000001000000 38 2 '首都'
    updatetext t.col2 0xFFFF0812000000003801000001000000 40 2 '首都'
    .
    .
    .
    updatetext t.col2 0xFFFF0812000000003801000001000000 7928 2 '首都'
    updatetext t.col2 0xFFFF0812000000003801000001000000 7930 2 '首都'
    updatetext t.col2 0xFFFF0812000000003801000001000000 7932 2 '首都'
    updatetext t.col2 0xFFFF0812000000003801000001000000 7934 2 '首都'
    updatetext t.col2 0xFFFF0812000000003801000001000000 7936 2 '首都'
    updatetext t.col2 0xFFFF0812000000003801000001000000 7938 2 '首都'
    updatetext t.col2 0xFFFF0812000000003801000001000000 7940 2 '首都'
    updatetext t.col2 0xFFFF0812000000003801000001000000 7942 2 '首都'
    updatetext t.col2 0xFFFF0812000000003801000001000000 7944 2 '首都'
    updatetext t.col2 0xFFFF0812000000003801000001000000 7946 2 '首都'
    updatetext t.col2 0xFFFF0812000000003801000001000000 7948 2 '首都'
    updatetext t.col2 0xFFFF0812000000003801000001000000 7950 2 '首都'
    updatetext t.col2 0xFFFF0812000000003801000001000000 7952 2 '首都'
    updatetext t.col2 0xFFFF0812000000003801000001000000 7954 2 '首都'
    updatetext t.col2 0xFFFF0812000000003801000001000000 7956 2 '首都'
    updatetext t.col2 0xFFFF0812000000003801000001000000 7958 2 '首都'
    updatetext t.col2 0xFFFF0812000000003801000001000000 7960 2 '首都'
    updatetext t.col2 0xFFFF0812000000003801000001000000 7962 2 '首都'
    updatetext t.col2 0xFFFF0812000000003801000001000000 7964 2 '首都'
    updatetext t.col2 0xFFFF0812000000003801000001000000 7966 2 '首都'
    updatetext t.col2 0xFFFF0812000000003801000001000000 7968 2 '首都'
    updatetext t.col2 0xFFFF0812000000003801000001000000 7970 2 '首都'
    updatetext t.col2 0xFFFF0812000000003801000001000000 7972 2 '首都'
    updatetext t.col2 0xFFFF0812000000003801000001000000 7974 2 '首都'
    updatetext t.col2 0xFFFF0812000000003801000001000000 7976 2 '首都'
    updatetext t.col2 0xFFFF0812000000003801000001000000 7978 2 '首都'
    updatetext t.col2 0xFFFF0812000000003801000001000000 7980 2 '首都'
    updatetext t.col2 0xFFFF0812000000003801000001000000 7982 2 '首都'(所影响的行数为 1 行)--小结
    如果你认为是字符长度问题,那么你可以按上面方法来查看,我测试了,按更新字段的大小,时间是不一样的,但是没有超时,你可以print 来查看 writetext或updatetext的执行过程