批量更新数据库所有表中字段的内容,中木马后的急救处理_MsSql

复制代码 代码如下:

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='a' /*这里是你要替换的字符*/
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;
小于8000的处理
update buyok_Orderlist set Notes=replace(cast(Notes as varchar(8000)),'a','')
如果text/ntext超过8000/4000,看如下例子<没有试过>
declare @pos int
declare @len int
declare @str nvarchar(4000)
declare @des nvarchar(4000)
declare @count int
set @des ='<requested_amount+1>'--要替换成的值
set @len=len(@des)
set @str= '<requested_amount>'--要替换的字符
set @count=0--统计次数.
WHILE 1=1
BEGIN
select @pos=patINDEX('%'+@des+'%',propxmldata) - 1
from 表名
where 条件
IF @pos>=0
begin
DECLARE @ptrval binary(16)
SELECT @ptrval = TEXTPTR(字段名)
from 表名
where 条件
UPDATETEXT 表名.字段名 @ptrval @pos @len @str
set @count=@count+1
end
ELSE
break;
END
select @count

时间: 2024-08-24 16:01:26

批量更新数据库所有表中字段的内容,中木马后的急救处理_MsSql的相关文章

在sysobjects表中,怎么可以获取到所选数据库中有表的字段信息?

问题描述 在sysobjects表中,怎么可以获取到所选数据库中有表的字段信息?

mysql-MySQL数据库从表1(table1)中导出数据到(table2)中。会有多列。

问题描述 MySQL数据库从表1(table1)中导出数据到(table2)中.会有多列. table1 字段:id name url table2: 需要获取 table1 中的id url 请问怎样实现? 用sql实现的时候需要注意字段名字和顺序吗? 解决方案 字段名称随便,但是要对应起来,包括类型. create table table2 ( id int primary key, name varchar(20), ) insert into table2(id,name) select

SQL语句大小写是否区分的问题,批量修改整个数据库所有表所有字段大小写

一.实例介绍 SQL语句大小写到底是否区分呢?我们先从下面的这个例子来看一下: 例: --> 创建表,插入数据: declare @maco table (number int,myvalue varchar(2)) insert into @maco select 1,'aa' union all select 2,'Aa' union all select 3,'aA' union all select 4,'AA' --不区分大小写 select * from @maco WHERE nn

如何用不同的sqlDataAdapter 批量更新同一个数据表

问题描述 问:从一个数据库访问类的静态方法中查询返回一个表,并绑定到dataGridView中,在dataGridView中加.删.改数据后怎么一次性批量更新数据到数据库...不能访问数据库访问类中的初始sqlDataAdapter...我没积分不好意思...还是请求高手的帮助(希望能有实例).... 解决方案 解决方案二:用update()啊

关于OleDbDataAdapter批量更新数据库的问题(急……………………)

问题描述 问题是数据库中原有一个表,现在计算得到新的数据,想通过OleDbDataAdapter批量更新数据,要求函数形式为publicboolSaveData(DataTableDT,stringDataSoure,stringTableName)其中DT是新计算得到的数据,共三列,第一列是主键,DataSoure表示数据库路径,和TableName一起用于建立数据库连接,如果更新数据库成功,返回True.我想的代码如下:publicboolSaveData(DataTableDT,strin

mysql跨数据库复制表(在同一IP地址中)示例_Mysql

数据库表间数据复制分类 在利用数据库开发时,常常会将一些表之间的数据互相导入.当然可以编写程序实现,但是,程序常常需要开发环境,不方便.最方便是利用sql语言直接导入.既方便而修改也简单.以下就是导入的方法. 1. 表结构相同的表,且在同一数据库(如,table1,table2) Sql : 复制代码 代码如下: insert into table1 select   *    from table2 (完全复制)insert into table1 select   distinct   * 

mysql把一个表某个字段的内容复制到另一张表的某个字段的SQL语句写法

 有时候,我们需要复制某个字段一整列的数据到另外一个新的字段中,或是需要把某个表的某个字段的值跨表复制到另一个表中的某个字段,本文就罗列了一些SQL语句写法,需要的朋友可以参考下   需求:把一个表某个字段内容复制到另一张表的某个字段.   实现sql语句1:     代码如下: UPDATE file_manager_folder f1 LEFT OUTER JOIN file_manager_folder f2      ON f1.name = f2.name AND f2.parentI

SQL Server数据库设计表和字段的经验

检查各种变化 我在设计数据库的时候会考虑到哪些数据字段将来可能会发生变更.比方说,姓氏就是如此(注意是西方人的姓氏,比如女性结婚后从夫姓等).所以,在建立系统存储客户信息时,我倾向于在单独的一个数据表里存储姓氏字段,而且还附加起始日和终止日等字段,这样就可以跟踪这一数据条目的变化. 采用有意义的字段名 有一回我参加开发过一个项目,其中有从其他程序员那里继承的程序,那个程序员喜欢用屏幕上显示数据指示用语命名字段,这也不赖,但不幸的是,她还喜欢用一些奇怪的命名法,其命名采用了匈牙利命名和控制序号的组

Mysql数据库编码问题 (修改数据库,表,字段编码为utf8)_Mysql

因为utf8字符集是目前最适合于实现多种不同字符集之间的转换的字符集,尽管你在命令行工具上可能无法正确查看数据库中的内容,我依然强烈建议使用utf8作为默认字符集接下来是完整的一个例子: 1.创建数据库表 mysql>CREATE DATABASE IF NOT EXISTS my_db default charset utf8 COLLATE utf8_general_ci; #注意后面这句话 "COLLATE utf8_general_ci",大致意思是在排序时根据utf8校