如何从SQL服务器表中恢复已删除的行?

24

我不小心对一张表使用了错误的WHERE从句执行了DELETE命令。

我正在使用SQL Server 2005。

有没有办法帮助我恢复丢失的数据?


除非你有可以恢复的备份,否则你可能会遇到麻烦! - Jagmag
谢谢。我需要这个。我并不孤单。(但愿有人能想出一种你可以恢复的方法。) - slashmais
2
我认为肯定有第三方工具可用-如http://apex-sql-log.apex-sql-llc.qarchive.org/或Red Gate的SQL Log Rescue http://www.red-gate.com/products/SQL_Log_Rescue/,但这些都是商业付费产品。 - Jagmag
我犯了同样的错误... :( - grv_9098
ApexSQL Log的正确链接是http://www.apexsql.com/sql_tools_log.aspx。 - Milena Petrovic
2
您可以在此文章中找到完整的逐步指南,以恢复从SQL Server表中删除的行 https://sqlbak.com/blog/recover-deleted-data-in-sql-server/ - user6155322
4个回答

10

使用Apex恢复工具是可以实现的,我已经成功地恢复了我意外删除的表行。

如果您下载试用版,则仅可以恢复第10行。

在此处查看 http://www.apexsql.com/sql_tools_log.aspx


我成功恢复了已删除的行,即使是在简单恢复模式下的数据库。 - Mohammad Dehghan

8
你是否拥有完整的数据和事务日志备份?这样你就可以从备份中恢复到另一个数据库,然后将已删除的行同步回来。虽然需要做很多工作...
(你看过Redgate's SQL Log Rescue吗?更新:它只支持SQL Server 2000)
这里有Log Explorer

5

很抱歉,我认为这是不可能的。

因此,无论何时运行删除或更新操作,您都应始终使用 BEGIN TRANSACTION,然后如果成功,使用 COMMIT,如果失败,则使用 ROLLBACK


3

失去的已经失去了,我知道唯一的保护方法就是定期备份。


2
这可能并不完全准确,但在运行DELETE命令之前,这是一个有用的一般性指导原则需要考虑。 - stakx - no longer contributing

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接