2010-11-04 181 views
8

我需要从一个SQL Server表中查看已删除的记录(行),其实我使用这个命令我如何查看从SQL Server表中删除的记录?

DBCC LOG(MyDatabase,-1) 

查看日志,但我不明白的输出格式。

存在任何免费的工具,翻译了SQL Server数据库的日志文件或任何文件至极如何解释该命令显示的信息DBCC LOG

我正在使用SQL Server 2008的

UPDATE

我的目标不是恢复已删除的记录,我只是想看到删除的记录或删除命令执行。

在此先感谢。

+0

我觉得特别难做到这一点我最后一次尝试。有几个第三方工具,但我没有发现它们太好。如果您有日志,可以将它们还原到上次备份的副本,并将其还原到新的数据库中? – MrEdmundo 2010-11-04 21:19:09

+0

我是第二个MrEdmundo的经验。日志实际上并不意味着被用作备份,或者作为恢复数据的方式。这是难以置信的破译,我还没有找到任何工具,通过筛选做了很好的工作。你最好的选择是采取最后的备份,恢复它,并找出差异(如果可能的话)。 – 2010-11-04 21:58:47

+0

作为一个教训,也许补充说,持有记录之后的任何DML已经在它们上面运行morge表。例如创建一个触发任何更新之前捕捉到该行,删除完成并标记行作为被删除或用d或U dml_type_id更新。 – Kuberchaun 2010-11-05 00:37:52

回答

4

您从DBCC LOG获得的数据为十六进制格式,您需要将其转换为可读状态。

您也可以尝试使用fn_dblog函数来读取事务日志,但您会得到几乎相同的结果,需要解码。

还有一个第三方工具ApexSQL登录可以读取事务日志并显示所有记录的命令,但它是有代价的。