替换SQL Server数据库中所有表的所有字段的某些内容

 

方法一:

复制代码
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;
复制代码
posted @   梦想天空(山边小溪)  阅读(2507)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
点击右上角即可分享
微信分享提示