替换SQL Server数据库中所有表的所有字段的某些内容
2008-12-26 00:34
295 查看
方法一:
exec sp_msforeachtable @command1=N'
declare @s nvarchar(4000),@tbname sysname
select @s=N'''',@tbname=N''?''
select @s=@s+N'',''+quotename(a.name)+N''=replace(''+quotename(a.name)+N'',N''''aa'''',N''''bb'''')''
from syscolumns a,systypes b
where a.id=object_id(@tbname)
and a.xusertype=b.xusertype
and b.name like N''%char''
if @@rowcount>0
begin
set @s=stuff(@s,1,1,N'''')
exec(N''update ''+@tbname+'' set ''+@s)
end'
方法二:
declare @t varchar(255),@c varchar(255)
declare table_cursor cursor for
select a.name,b.name from sysobjects a,syscolumns b ,systypes c
where a.id=b.id and a.xtype='u' and c.name in (--这里是要替换的类型
'char', 'nchar', 'nvarchar', 'varchar','text','ntext' --这里如果你的text(ntext)类型没有超过8000(4000)长度,才可以使用
)
declare @str varchar(500),@str2 varchar(500)
--这里是你要替换的原字符
set @str='aa'
--这里是你要替换的新字符
set @str2='bb'
open table_cursor fetch next from table_cursor into @t,@c
while(@@fetch_status=0)
begin
exec('update [' + @t + '] set [' + @c + ']=replace(cast([' + @c + '] as varchar(8000)),'''+@str+''','''+ @str2 +''')')
fetch next from table_cursor into @t,@c
end
close table_cursor
deallocate table_cursor;
exec sp_msforeachtable @command1=N'
declare @s nvarchar(4000),@tbname sysname
select @s=N'''',@tbname=N''?''
select @s=@s+N'',''+quotename(a.name)+N''=replace(''+quotename(a.name)+N'',N''''aa'''',N''''bb'''')''
from syscolumns a,systypes b
where a.id=object_id(@tbname)
and a.xusertype=b.xusertype
and b.name like N''%char''
if @@rowcount>0
begin
set @s=stuff(@s,1,1,N'''')
exec(N''update ''+@tbname+'' set ''+@s)
end'
方法二:
declare @t varchar(255),@c varchar(255)
declare table_cursor cursor for
select a.name,b.name from sysobjects a,syscolumns b ,systypes c
where a.id=b.id and a.xtype='u' and c.name in (--这里是要替换的类型
'char', 'nchar', 'nvarchar', 'varchar','text','ntext' --这里如果你的text(ntext)类型没有超过8000(4000)长度,才可以使用
)
declare @str varchar(500),@str2 varchar(500)
--这里是你要替换的原字符
set @str='aa'
--这里是你要替换的新字符
set @str2='bb'
open table_cursor fetch next from table_cursor into @t,@c
while(@@fetch_status=0)
begin
exec('update [' + @t + '] set [' + @c + ']=replace(cast([' + @c + '] as varchar(8000)),'''+@str+''','''+ @str2 +''')')
fetch next from table_cursor into @t,@c
end
close table_cursor
deallocate table_cursor;
相关文章推荐
- 替换SQL Server数据库中所有表的所有字段的某些内容
- sql IN 的用法一例--替换 mysql longtext字段中某些内容的用法
- update 追加一个字段的内容,或替换一个字段里面某些 字符
- Linux下替换指定的目录及其子目录下所有文件中的某些内容(3种方法)
- SQL替换语句之批量修改、增加、删除字段内容
- 如何用正则表达式替换掉所有HTM内容
- mysql中替换某个字段中的某一些内容 .
- 对过万条数据的数据库字段内容批量替换程序
- linux-sed命令: 批量替换某文件夹下所有文件里的某段内容
- sql server 2008 如何使用正则更新替换字段内容
- Sql Server 中 text或ntext,varchar,nvarchar 字段内容替换方法总结z
- sql中对text字段里面的内容进行替换
- 巧用asp.net 过滤所有的Response请求并替换部分内容,彻底解决MVC虚拟路径问题.
- 批量替换数据库中所有用户数据表中字段数据类型为char和varchar到nvarchar的脚本
- php 批量更新某字段内容的部分内容 replace(要替换的字段,'被替换的字符串,'替换成的字符串')
- SQL Server批量替换所有表中内容sql语句-清楚挂马
- MySQL 替换某字段内部分内容的UPDATE语句
- SQL查询中用replace替换ntext,text字段部分内容
- 清除数据库中的所有内容,包括自增字段的归零
- SQL语句替换字段内容例子