SQL Server批量替换所有表中内容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 /*“u”为你要操作的数据类型,不改为全部数据类型,不想麻烦就不用修改了*/
in ('char', 'nchar', 'nvarchar', 'varchar','text','ntext' /* --这里如果你的text(ntext)类型没有超过8000(4000)长度,才可以使用*/)
declare @str varchar(500),@str2 varchar(500)
set @str=' ' /*这里是你要替换的字符*/
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)),'''[email protected]+''','''+ @str2 +''')')
fetch next from table_cursor
into @t,@c end close table_cursor deallocate table_cursor;

在SQL Server的查询分析器执行上面的代码,不需要在查看哪个表,哪个字断被注入了,可以很快删除被注入的字段,非常好用!

时间: 2024-10-14 00:52:44

SQL Server批量替换所有表中内容sql语句-清楚挂马的相关文章

Sql Server 在已知表中插入、删除、修改某一列操作

--1.向已有表中增加一列 ALTER TABLE TableName ADD ColumnName VARCHAR(20) NULL --2.删除表中的某一列 ALTER TABLE TableName DROP COLUMN ColumnName --3.修改某一列的数据类型 ALTER TABLE TableName ALTER COLUMN ColumnName INT 2.查询当年或者当月的数据 1.查询当年的数据 SELECT * FROM UserInfo WHERE YEAR(R

批量替换某个表中的字段字符串

declare @curTable nvarchar(500), @FilterStr nvarchar(500);--过滤字符串 字符串及之后的数据将被替换为空 set @FilterStr='<'; set @curTable='B07'; DECLARE @SQLList nvarchar(4000), @tableName VARCHAR(10), @name VARCHAR(10), @type VARCHAR(10); set @SQLList=''; BEGIN -- 定义游标.

[SQL Server] 在数据库所有表中查找含有某关键字的字段

SELECT t.name AS table_name, SCHEMA_NAME(schema_id) AS schema_name, c.name AS column_name FROM sys.tables AS t INNER JOIN sys.columns c ON t.OBJECT_ID = c.OBJECT_ID WHERE c.name LIKE '%字段名%' ORDER BY schema_name, table_name

sql server 批量删除数据表

SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGO-- =============================================-- Author: <Author,,Name>-- Create date: <Create Date,,>-- Description: <Description,,>-- =============================================alter PRO

获得sql server的table的表结构 -- 转到word中

SQL语句: select syscolumns.name,systypes.name,syscolumns.length from syscolumns join sysobjects on syscolumns.id=sysobjects.id and sysobjects.xtype='U' join systypes on systypes.xtype=syscolumns.xtype where sysobjects.name='master_location' order by sy

SQL语句:关于复制表结构和内容到另一张表中的SQL语句

1.复制新表结构及数据到新表create table 新表 select * from 旧表 2.只复制表结构到新表 create table 新表 select * from 旧表 where 1=2 3.复制旧表的数据到新表(假设两个表结构一样) insert into 新表 select * from 旧表 4.复制旧表的数据到新表(假设两个表结构不一样) insert into 新表(字段1,字段2,......) select 字段1, 字段2,... from 旧表 SQL语句:关于

SQL Server 在多个数据库中创建同一个存储过程(Create Same Stored Procedure in All Databases)

原文:SQL Server 在多个数据库中创建同一个存储过程(Create Same Stored Procedure in All Databases) 一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 遇到的问题(Problems) 实现代码(SQL Codes) 方法一:拼接SQL: 方法二:调用模板存储过程创建存储过程: 总结 扩展阅读 参考文献(References) 二.背景(Contexts) 在我的数据库服务器上,同一个实例

SQL Server 2014新功能 -- 内存中OLTP(In-Memory OLTP)

SQL Server 2014新功能 -- 内存中OLTP(In-Memory OLTP) 概述 内存中OLTP(项目"Hekaton")是一个全新的.完全集成到SQL Server的数据库引擎组件. 对OLTP工作负载访问中在内存中的数据进行了优化.内存中OLTP能够帮助OLTP工作负载实现显著的性能改善,并减少处理时间.表能被视为"内存优化",提升内存中的OLTP功能.内存优化表是完全可事务的.并可以使用Transact-SQL进行访问.Transact-SQL

SQL Server 批量数据导入

1. 由于Bulk Insert通常配合格式化文件批量导入数据更方便,所以这里先介绍bcp工具导出格式化文件的方法. bcp是SQL Server提供的命令行实用工具提供了数据的导出.导入.格式文件导出等功能,导出格式化文件的语法如下: bcp 数据库名.用户名.表名 format nul -- 这里的nul必须存在,用于不是导出和导入数据的情况下 -f 输出的格式化文件名 [-x] -c -- -x参数指定输出的格式文件为xml格式(默认非xml格式); -c参数指定数据存储方式为字符,并默认