如何从SQL表中删除部分文本?

时间:2014-09-09 13:32:09

标签: delete-row sql-delete

一个破解者破解了我的SQL数据库,将以下脚本安装到大多数行中:

<script src=http://www.example.com/xx.js></script>

我需要在每一行中删除这个脚本,(不是行中的所有文本)我找到了命令:

DELETE FROM [tevalifeForum].[dbo].[FORUM_MEMBERS]
      WHERE <Search Conditions,,>
GO

但我不知道如何继续。

1 个答案:

答案 0 :(得分:0)

假设您的列类型为TEXT并且您想要删除该TEXT列中的行,这里的内容与我过去的类似:

DECLARE @script VARCHAR(100), @len INT, @i INT

SELECT
    @script = '<script src=http://www.example.com/xx.js></script>',
    @len = LEN(@script)

SELECT @i = MAX(DATALENGTH([col]))
    FROM [tevalifeForum].[dbo].[FORUM_MEMBERS]

UPDATE [tevalifeForum].[dbo].[FORUM_MEMBERS]
    SET [col] =
    LEFT(CAST([col] AS VARCHAR(MAX)), CHARINDEX(@script, [col])-1)
    + SUBSTRING(CAST([col] AS VARCHAR(MAX)), CHARINDEX(@script, [col])+ @len, @1)
    WHERE [col] LIKE '%' + @script + '%'

请确保您拥有有效的备份,并了解只能通过从备份恢复来“撤消”。