
简单的方法就是直接在企业管理器里使用replace方法替换
update
table_name
set
fieldName
=
REPLACE(fieldName
,'木马代码','')
挨个表清理吧,有点累。。。呵呵,我之前也中过招。
用一次性删除的方法是很不明智的。1、delete *** 作会被完整记录到日志里,它需要大量空间和时间
2、如果删除中间发生中断,一切删除会回滚(在一个事务里)
3、同时删除多行,记录上的锁也许会被提升为排它表锁,从而阻碍 *** 作完成之前有对这个表的 *** 作(有时候会妨碍正常的业务)所以一般采取分批删除的方法.
所以我们可以通过分批次迁移压缩数据,这样可以大大提升执行速度和执行效率
首先通过set rowcount 来控制每次删除的记录数
执行Sql语句
SET ROWCOUNT 0记录每次执行删除的条数
通过TOP的方法,并且使用循环
WHILE 1 = 1
BEGIN
DELETE TOP(5000) FROM dbo.Table WHERE time<'2016-12-12'
IF @@rowcount <5000
BREAK
END
SELECT 'drop table '||name||'' FROM sys.objects WHERE TYPE='U' AND name LIKE N'ABC%'执行上边语句生成出来的语句就可以全部删除那些表了
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)