2008-10-14 53 views
2

我们的测试数据库突然缺少行。我们希望他们回来。如何撤消SQL Server 2005中的删除操作?

有没有办法筛选今天发生在数据库上的所有事情?每个SQL语句?我认为这种东西在事务日志中,但不知道如何查看它。

有没有办法来取消删除操作?

BTW:是的,我们确实有一个备份,而是宁愿找到缺失以及事业......

回答

1

你可以用一些Red Gate的工具做到这一点,但它的成本。看看SQL Log Rescue

否则,我会很想做一个恢复。

+0

是的,我们只是做一个恢复(本地数据库),并试图从那里找出,修补测试数据库。 – 2008-10-14 18:01:57

+1

Sql日志拯救只适用于Sql Server 2000及更早版本。 – 2012-04-20 14:28:10

1

您需要一个第三方工具来执行此操作。该工具必须能够进入事务日志并查看日志条目,以便查看发生了什么。我没有使用任何这些工具,但我会尝试Red Gate的SQL Log Rescue作为初学者。试试看:

http://www.red-gate.com/products/SQL_Log_Rescue/index.htm

2

[迟到的回答,但希望有用]

有一种方法可以使用事务日志恢复已删除的行,但仅限于使用第三方工具且只有您的数据库处于完全恢复模式。

戴尔(原Quest)有Toad for SQL Server,ApexSQL有ApexSQL LogApexSQL Recover,它们也可以读取t-log并恢复数据。不幸的是,Red Gate的Log Rescue只能读取SQL Server 2000上的日志。

还有一种使用未记录的dbcc log命令读取t日志的方法。查看更多详情here

考虑到您已经拥有数据库备份,您可以将它们恢复到单独的数据库中,然后使用市场上存在的许多数据比较工具之一将缺失的数据插入生产数据库。当然,这只能在创建备份之前恢复数据删除。

-1

您可以通过在SQL Server中使用Rollback命令来撤销事务。但是,如果交易在Begin交易中执行,您需要知道交易可以回滚。