我有一个网站几天前就遭到了攻击,那个坏人拿走了几位用户的电子邮件并进行了更改。我需要尽可能多地还原。
因此,我有两个备份:攻击后进行一次备份,然后进行一次备份。
我收到了很多这样的电子邮件
SELECT [email], [userId]
FROM [lastBackup].[dbo].[aspnet_Membership]
WHERE [email] like '%@dispostable.com'
问题是,在这种情况下,我该如何更新测试库中的每一行以从[oldBackup]
表中进行赋值。
我以为应该是这样的,尽管它看起来很糟糕而且不起作用=)
UPDATE [testbase].[dbo].[aspnet_Membership] AS tb
SET [email] = (SELECT om.[email] FROM [oldBackup].[dbo].[aspnet_Membership] om
INNER JOIN [lastBackup].[dbo].[aspnet_Membership] cm
ON cm.userId = om.userId
WHERE cm.[email] LIKE '%@dispostable.com'
AND tb.userId = cm.userId)
我相信您输入的update...from
语句形式有误,请改用此方法(如文档中所述):
UPDATE [testbase].[dbo].[aspnet_Membership]
SET [email] = om.[email]
FROM [testbase].[dbo].[aspnet_Membership] tb
INNER JOIN [lastBackup].[dbo].[aspnet_Membership] cm ON tb.userId = cm.userId
INNER JOIN [oldBackup].[dbo].[aspnet_Membership] om ON cm.userId = om.userId
WHERE cm.[email] LIKE '%@dispostable.com'
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句