如表 TableA
有一字段(Content)中有多个地方有:http://teo/hwweb/upload/xx1.jpg(xx2.jpg) 希望把这些替换成
../../upload/xx.jpg(xx2.jpg) 然后在保存呢?

解决方案 »

  1.   

    update tableA set col = 'http://teo/hwweb/upload/xx.jpg(xx2.jpg)'   where col like '%http://teo/hwweb/upload/xx1.jpg(xx2.jpg)%'
      

  2.   

    content不是text类型就可以使用replace函数:
    update 表
    set content=replace(content,'http://teo/hwweb/upload/xx1.jpg(xx2.jpg)','../../upload/xx.jpg(xx2.jpg)')
    where charindex('http://teo/hwweb/upload/xx1.jpg(xx2.jpg)',content)>0
      

  3.   

    --Content是什么样的数据类型??
    --如果是varchar数据类型,直接替换就可以了
    --如果是Text数据类型,要用updatetext 一条一条循环处理--测试环境
    declare @TableA table(Content varchar(2000))
    insert into @TableA select 'http://teo/hwweb/upload/xx1.jpg(xx2.jpg)'
    --替换语句
    update @TableA set Content=replace(Content,'http://teo/hwweb/','../../')
    where patindex('%http://teo/hwweb/%',Content)>0
    --查看结果
    select * from @TableA
    --结果
    ../../upload/xx1.jpg(xx2.jpg)(所影响的行数为 1 行)
      

  4.   

    content是ntext
    to:footpath(footpath) 
    我晕,是content字段中的内容..而不是content...
    to:rivery(river)
    你的办法有点可行.但是我的初衷是这样的:'http://teo/hwweb/upload/xx1.jpg ' 取出最后的.xx1.jpg ,并且其改为../../upload/xx1.jpg.
      

  5.   

    我也遇到过这样的情况。
    我是把表导到access里面替换后再导回来的。
      

  6.   

    --如果是:ntext处理方式如下:declare @TableA table(Content ntext)
    insert into @TableA select 'http://teo/hwweb/upload/xx1.jpg(xx2.jpg)'update @TableA set Content=replace(convert(varchar(8000),Content),'http://teo/hwweb/','../../')
    where patindex('%http://teo/hwweb/%',Content)>0select * from @TableA--结果
    ../../upload/xx1.jpg(xx2.jpg)(所影响的行数为 1 行)
      

  7.   

    查看sqlserver的字符处理函数。
      

  8.   

    to: zlp321002
    可行,不过它将content中的一些换行符,退位符,回车符都变为???了.请问如何解决?2.还有一种情况,在asp.net后台程序中如何实现,即,过滤后..直接插入到数据库中...
    等待中,,,高人救急!