怎样对类型为text(长度大于8000) 的列进行字符操作运算.
例如.有一个字段content.已知长度大于8000,我要在长度的1/4(取整)处插入"csdn" 这几个字. 如果用convert to varchar 转化可能会丢失字符.请问 怎样写语句呢?

解决方案 »

  1.   

    update text
    set content = substring(content,1,len(content)/4) + 'csdn' + substring(content,len(content)/4,len(content))
    不知道能运行不
      

  2.   

    create table #t(id int,textinfor text)
    insert into #t 
    select 1,'fddddddddddddddddddddder332' 
    insert into #t 
    select 2,'fdddddddggdfgjfgdddddddddddddder332' DECLARE @ptrval binary(16)
    declare @textlen int
    SELECT @ptrval = TEXTPTR(textinfor),@textlen=datalength(textinfor) 
      FROM #t
        where id=1
    set @textlen=@textlen/4
    UPDATETEXT #t.textinfor  @ptrval @textlen 0 'csdn' select * from #t
    drop table #t