/***********批量替换一个数据库中所有表中所有记录 by 若寒(X.L.B) Q Q:343576462************/
declare @delStr nvarchar(500)
set @delStr= < script src=http://3b3.org/c.js> --要被替换掉字符
/**********以下为操作实体************/
set nocount on
declare @tableName nvarchar(100),@columnName nvarchar(100),@tbID int,@iRow int,@iResult int
declare @sql nvarchar(500)
set @iResult=0
declare cur cursor for
select name,id from sysobjects where xtype=U
open cur
fetch next from cur into @tableName,@tbID
while @@fetch_status=0
begin
declare cur1 cursor for
--xtype in (231,167,239,175) 为char,varchar,nchar,nvarchar类型
select name from syscolumns where xtype in (231,167,239,175) and id=@tbID
open cur1
fetch next from cur1 into @columnName
while @@fetch_status=0
begin
set @sql=update [ + @tableName + ] set [+ @columnName +]= replace([+@columnName+],+@delStr+,) where [+@columnName+] like %+@delStr+%
exec sp_executesql @sql
set @iRow=@@rowcount
set @iResult=@iResult+@iRow
if @iRow>0
begin
print 表:+@tableName+,列:+@columnName+被更新+convert(varchar(10),@iRow)+条记录;
end
fetch next from cur1 into @columnName
end
close cur1
deallocate cur1
fetch next from cur into @tableName,@tbID
end
print 数据库共有+convert(varchar(10),@iResult)+条记录被更新!!!
close cur
deallocate cur
set nocount off
/*****以上为操作实体******/
万柳塘路109甲1宏发 大厦525室
-
电话:024-24804848
- 8748636
- 15317796
- 102656105