在整个数据库中进行stringsearch和replace

在ASP.NET网站上进行攻击之后,客户端留下了一个特定的恶意代码string,这个恶意代码string遍布整个数据库,多个表中的多列。 前缀string是一致的,不会因表格而有所不同,所以理论上如果我可以在整个数据库中进行search和replace,可以在一个操作中清除。

我可以在PostgreSQL或MySQL中很容易地做到这一点:

mysqldump bad_db | sed 's/evilcode//g' | mysql fixed_db 

但是,如何用SQLServer做这样的事情呢? 我不确定它在Windows下非常简单。

你将要遇到的问题是数据库备份文件是二进制而不是像MySQL转储那样的纯文本。 这里是一个博客文章的链接 ,我写了一段时间,将擦除varchar和nvarchar字段。 对于文本和ntext没有代码,但是这可能会清除大部分内容。 Text和Ntext更难,因为你不能使用子string等东西。