update table 
set info = stuff(info,charindex('$',info,1)+1,1,'55555')

解决方案 »

  1.   

    UPDATE TABLENAME
    SET INFO=STUFF(INFO,CHARINDEX(1,'$',INFO),CHARINDEX(CHARINDEX(1,'$',INFO)+1,'$',INFO)-CHARINDEX(1,'$',INFO)+1,'$55555$')没测试,不知道有没写错
      

  2.   

    declare @t table(id int,info text)
    Insert into @t
          select 1 ,cast('信息$1$0$' as text)
    union all select 2 ,cast('信息信息$1$0$' as text)
    union all select 3 ,cast('信息信息$$0$' as text)update @t set info=Replace(cast(info as varchar),'$1$','$55555$')select * from @t
      

  3.   

    看来写错了UPDATE TABLENAME
    SET INFO=STUFF(INFO,CHARINDEX('$',INFO,1),CHARINDEX('$',INFO,CHARINDEX('$',INFO,1)+1,'$',INFO)-CHARINDEX(1,'$',INFO)+1),'$55555$')
    发这么多贴,回复完就找不到再哪里回复了
      

  4.   

    错了,再改
    UPDATE TABLENAME
    SET INFO=STUFF(INFO,CHARINDEX('$',INFO,1),CHARINDEX('$',INFO,CHARINDEX('$',INFO,1)+1)-CHARINDEX('$',INFO,1)+1),'$55555$')
      

  5.   

    declare @t table(id int,info varchar(20))
    insert into @t select 1,'信息$1$0$'
    insert into @t select 2,'信息信息$1$0$'
    insert into @t select 3,'信息信息$$0$'update @t set info=stuff(info,charindex('$',info)+1,charindex('$',stuff(info,charindex('$',info),1,''))-charindex('$',info),'55555')  select * from @t/*
    id          info                 
    ----------- -------------------- 
    1           信息$55555$0$
    2           信息信息$55555$0$
    3           信息信息$55555$0$
    */
      

  6.   

    update table 
    set info =
    stuff(info,charindex('$',info,1),charindex('$',info,charindex('$',info,1)+1))-charindex('$',info,1)+1,'$55555$')
      

  7.   

    declare @t table(id int,info text)
    insert @t select 1,'信息$1$0$'select * from @t
    update @t 
    set info = stuff(cast(info as varchar),charindex('$',info,1)+1,1,'55555')
    select * from @t
    /*id          info       
    ----------- ---------------
    1           信息$1$0$(所影响的行数为 1 行)
    (所影响的行数为 1 行)id          info       
    ----------- --------------
    1           信息$55555$0$
    */
      

  8.   

    create table #t(id int identity(1,1),info nvarchar(100))
    insert #t
    select N'信息$1$0$'
    union all 
    select N'信息信息$1$0$'
    union all
    select N'信息信息$$0$'update #t
    set info=
    left(info,charindex( '$',info))+'55555'
    +right(stuff(info,1,charindex('$',info),''),Len(stuff(info,1,charindex( '$',info),''))-charindex('$',stuff(info,1,charindex( '$',info),''))+1) from #tselect * from #tdrop table #t
    /*
    result
    id          info       
    ----------------------------------------------------------------------------- 
    1           信息$55555$0$
    2           信息信息$55555$0$
    3           信息信息$55555$0$(3 row(s) affected)
    */
      

  9.   

    关键是TEXT字段 你们都是varchar字段 2样的-_-
      

  10.   

    我晕.你干吗用TEXY的呀!用VARCHAR的不成吗?
      

  11.   

    STUFF
    再说这个就是针对TEXT的
      

  12.   

    STUFF
    删除指定长度的字符并在指定的起始点插入另一组字符。语法
    STUFF ( character_expression , start , length , character_expression ) 参数
    character_expression由字符数据组成的表达式。character_expression 可以是常量、变量,也可以是字符或二进制数据的列。start是一个整形值,指定删除和插入的开始位置。如果 start 或 length 是负数,则返回空字符串。如果 start 比第一个 character_expression 长,则返回空字符串。length是一个整数,指定要删除的字符数。如果 length 比第一个 character_expression 长,则最多删除到最后一个 character_expression 中的最后一个字符。返回类型
    如果 character_expression 是一个支持的字符数据类型,则返回字符数据。如果 character_expression 是一个支持的 binary 数据类型,则返回二进制数据。