我建了一个数据库,里面有很多表,表中有很多字段,我怎样才能一下全部删除所有表中所有字段的某些数据?

注:不是所有字段都有这些数据,我希望能够全部遍历一次,然后找到要删除的内容,一次性删除??求源代码,测试通过,再加分数!!

我的百度网盘推广链接,请支持下


http://yun.baidu.com/disk/beinvited?uk=4195699187


万分谢谢。


select * from First
select * from Secend
--删除包含“机尾”数据的记录
declare
@strdel varchar(20)
set @strdel='机尾'

declare @temp table
(
xh int identity,
tabname varchar(20), --表名
colname varchar(20) --列名
)
insert into @temp(tabname,colname)
select b.name as tabname,a.name as colname 
  from syscolumns a inner join sysobjects b on a.id=object_id(b.name)
  where b.xtype='U' 
and  b.name not in ('sysdiagrams')--排除系统表
  order by b.name

declare
@tabname varchar(20),
@colname varchar(20),
@i int,
@rowcount int,
@strsql varchar(100)
set @rowcount=@@ROWCOUNT
set @i=0
while @i<@rowcount
begin
set @i=@i+1
select @tabname=tabname,@colname=colname from @temp where xh=@i
set @strsql='delete ' + @tabname + ' where ' + @colname + ' like ''%' + @strdel + '%'''
exec(@strsql)
end

select * from First
select * from Secend

删除包含“机尾”的数据记录,看看下面的效果


假如建了关系图,多执行几次脚本即可。

追问

不用把机尾包含的所有数据都删除了,只删除‘机尾’二字呢?我的服务器上的数据库被人注入了非法字符,几乎所有表的大多数字段都被注入该信息,我想一次性删除它们,如下图:

后面红色框框里面的都是不良信息,我想删除,求帮忙啊!!我想就直接在sql里面执行删除语句,求代码啊?大侠

追答

那你有replace就好了啊
替换

温馨提示:答案为网友推荐,仅供参考