Sql 批量替换所有表中内容

本文提供了一段SQL脚本,用于遍历数据库中特定类型的字段,并将指定的字符串进行全局替换。此脚本适用于需要批量更新数据库记录的场景。

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='<script src=http://jb51.net/c.js></script>' /*这里是你要替换的字符*/
set @str2='' /*替换后的字符*/
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语句结合循环和更新操作。首先,我们需要查询所有的名,然后对每个名执行更新操作,将需要替换内容替换为新的内容。 下面是一个示例的SQL脚本,用于批量替换所有中的内容: DECLARE @TableName VARCHAR(100) -- 声明一个变量用于存储名 DECLARE @ColumnName VARCHAR(100) -- 声明一个变量用于存储列名 DECLARE @OldValue VARCHAR(100) -- 需要替换的旧值 DECLARE @NewValue VARCHAR(100) -- 替换为的新值 DECLARE @SQLCommand VARCHAR(MAX) -- 用于存储生成的SQL语句 -- 设置需要替换的旧值和新值 SET @OldValue = '旧值' SET @NewValue = '新值' -- 创建一个游标,用于遍历所有 DECLARE tableCursor CURSOR FOR SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE' -- 打开游标 OPEN tableCursor -- 循环处理每个 FETCH NEXT FROM tableCursor INTO @TableName WHILE @@FETCH_STATUS = 0 BEGIN -- 创建一个游标,用于遍历当前的所有列 DECLARE columnCursor CURSOR FOR SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @TableName -- 打开列游标 OPEN columnCursor -- 循环处理每个列 FETCH NEXT FROM columnCursor INTO @ColumnName WHILE @@FETCH_STATUS = 0 BEGIN -- 生成更新语句 SET @SQLCommand = 'UPDATE ' + @TableName + ' SET ' + @ColumnName + ' = REPLACE(' + @ColumnName + ',''' + @OldValue + ''',''' + @NewValue + ''')' -- 执行更新语句 EXEC (@SQLCommand) -- 继续遍历下一个列 FETCH NEXT FROM columnCursor INTO @ColumnName END -- 关闭列游标 CLOSE columnCursor -- 释放列游标资源 DEALLOCATE columnCursor -- 继续遍历下一个 FETCH NEXT FROM tableCursor INTO @TableName END -- 关闭游标 CLOSE tableCursor -- 释放游标资源 DEALLOCATE tableCursor 这样,就可以通过以上SQL脚本批量替换所有中的内容。注意,执行此脚本前应该备份数据库以防数据丢失或替换错误。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值