这是网上找的declare @s_str varchar(8000),@d_str varchar(8000)
select @s_str='[PAGE]' --要替换的字符串
,@d_str='[page]***[/page]'--替换成的字符串--字符串替换处理
declare @p varbinary(16),@postion int,@rplen int
select @p=textptr(memohtml),@rplen=len(@s_str),@postion=charindex(@s_str,memohtml)-1 from [auto_news]
while @postion>0
begin
updatetext [auto_news].[memohtml] @p @postion @rplen @d_str
select @postion=charindex(@s_str,memohtml)-1 from [auto_news]
end
数据少的时候memohtml只有少数字符可以替换成功(测试的时候是一行数据)全部替换的时候,就是提示成功,但里面的内容却没有变数据才1万条

解决方案 »

  1.   

    update tb set 字段=cast(replace(cast(字段 as varchar(max)),'[page]','[page]***[/page]') as text)
      

  2.   


    就是执行替换后,里面的[PAGE]不变为 [page]***[/page]
      

  3.   


    varchar(max) SQL 2005才有吧,2000好像没