最笨的方法,
读出来,写到WORD,通过WORD来替换。

解决方案 »

  1.   

    将Text转为字符串,再替换,如
    MYTEXT字段为Text型
    UPDATE TABLE1
    SET MYTEXT = REPLACE(CONVERT(VARCHAR,MYTEXT),'AA','BB')
      

  2.   

    如果我的长度大于8000了,那不是超出varchar范围了吗,
      

  3.   

    用readtxt读部分数据块,replace 更改然后updatetxt写回去,以此做个循环修改的函数。调用一下即可
      

  4.   

    create table #t(txt text)insert into #t values('asdfa$$$ljljl$$$1234$$$')
    insert into #t values('$$$123$$')
    insert into #t values('34$$$as')goDECLARE @val varbinary(16)
    declare @n int
    declare @len int
    declare @old varchar(8000)
    declare @new varchar(8000)set @old = '$$$'
    set @new = '@@'
    set @len = len(@old)
    while 1=1
    begin
    SELECT top 1  @val = TEXTPTR(txt),@n = patindex('%'+@old+'%',txt)-1
    from #t
    where patindex('%'+@old+'%',txt) > 0
      if @@rowcount = 0 
        break
    updatetext #t.txt @val @n @len @new
    end
      
    goselect * from #t
    --asdfa@@ljljl@@1234@@
    --@@123$$
    --34@@as但是,如果将'$$$'转成'$$'则可能会出问题。自己再想想,我没时间了:)
      

  5.   

    好像可以的啊!create table #t(txt text)insert into #t values('asdfa$$$$ljljl$$$$1234$$$$')
    insert into #t values('$$$$123$$')
    insert into #t values('34$$$$as')goDECLARE @val varbinary(16)
    declare @n int
    declare @len int
    declare @old varchar(8000)
    declare @new varchar(8000)set @old = '$$$$'
    set @new = '$$'
    set @len = len(@old)
    while 1=1
    begin
    SELECT top 1  @val = TEXTPTR(txt),@n = patindex('%'+@old+'%',txt)-1
    from #t
    where patindex('%'+@old+'%',txt) > 0
      if @@rowcount = 0 
        break
    updatetext #t.txt @val @n @len @new
    end
      goselect * from #t
    drop table #t