select replace(replace(字段名,'民进党','*'),'找死','*') from BBSTopic
'字段名' 为ntext型
结果出现:消息 8116,级别 16,状态 1,第 1 行
参数数据类型 ntext 对于 replace 函数的参数 1 无效。

解决方案 »

  1.   

    select replace(replace(cast(字段名 as varchar(8000)),'民进党','*'),'找死','*') from BBSTopic 
      

  2.   

    如果“字段名”的长度不超过8000,可以这样
    select replace(replace(cast(字段名 as varchar(8000)),'民进党','*'),'找死','*') from BBSTopic
    2005以后的版本还可以转成varchar(max)
      

  3.   

    我看问题好象出在外面的replace
      

  4.   

    select replace(replace(cast(字段名 as varchar),'民进党','*'),'找死','*') from BBSTopic select replace(replace(cast(字段名 as varchar(8000)),'民进党','*'),'找死','*') from BBSTopic 
      

  5.   

    create table  #1 (id int identity(1,1),aa  ntext)
    insert #1 values('民进党laskdfjls adfk 找死lsajdf')
    insert #1 values('wqerwqqw民进党laskdfjls adfk 找死lsajdf')
    insert #1 values('wqerwqer民进党laskdfjls adfk 找死wqerlsajdf')select *, replace(replace(cast(aa as nvarchar(max)),'民进党','*'),'找死','*') from #1
    id          aa                                                                             
    ----------- -----------------------------------------------
    1           民进党laskdfjls adfk 找死lsajdf *laskdfjls adfk *lsajdf
    2           wqerwqqw民进党laskdfjls adfk 找死lsajdf  wqerwqqw*laskdfjls adfk *lsajdf
    3           wqerwqer民进党laskdfjls adfk 找死wqerlsajdf                 wqerwqer*laskdfjls adfk *wqerlsajdf(3 row(s) affected)