我需要从一个SQL Server表中查看已删除的记录(行),其实我使用这个命令我如何查看从SQL Server表中删除的记录?
DBCC LOG(MyDatabase,-1)
查看日志,但我不明白的输出格式。
存在任何免费的工具,翻译了SQL Server数据库的日志文件或任何文件至极如何解释该命令显示的信息DBCC LOG
我正在使用SQL Server 2008的
UPDATE
我的目标不是恢复已删除的记录,我只是想看到删除的记录或删除命令执行。
在此先感谢。
我需要从一个SQL Server表中查看已删除的记录(行),其实我使用这个命令我如何查看从SQL Server表中删除的记录?
DBCC LOG(MyDatabase,-1)
查看日志,但我不明白的输出格式。
存在任何免费的工具,翻译了SQL Server数据库的日志文件或任何文件至极如何解释该命令显示的信息DBCC LOG
我正在使用SQL Server 2008的
UPDATE
我的目标不是恢复已删除的记录,我只是想看到删除的记录或删除命令执行。
在此先感谢。
它可以作为一个学习练习,尽管文档很薄。我已经解码了日志中的删除示例,以及日志中的更新和其他一些项目。
http://sqlfascination.com/2010/02/03/how-do-you-decode-a-simple-entry-in-the-transaction-log-part-1/
给出的解释的长度,它不适合在这里只是重新发布。
您从DBCC LOG获得的数据为十六进制格式,您需要将其转换为可读状态。
您也可以尝试使用fn_dblog函数来读取事务日志,但您会得到几乎相同的结果,需要解码。
还有一个第三方工具ApexSQL登录可以读取事务日志并显示所有记录的命令,但它是有代价的。
这里是一个循序渐进的使用提供读取使用无证SQL函数的数据库联机事务日志中的所有SQL代码一步的指导fn_dblog
我觉得特别难做到这一点我最后一次尝试。有几个第三方工具,但我没有发现它们太好。如果您有日志,可以将它们还原到上次备份的副本,并将其还原到新的数据库中? – MrEdmundo 2010-11-04 21:19:09
我是第二个MrEdmundo的经验。日志实际上并不意味着被用作备份,或者作为恢复数据的方式。这是难以置信的破译,我还没有找到任何工具,通过筛选做了很好的工作。你最好的选择是采取最后的备份,恢复它,并找出差异(如果可能的话)。 – 2010-11-04 21:58:47
作为一个教训,也许补充说,持有记录之后的任何DML已经在它们上面运行morge表。例如创建一个触发任何更新之前捕捉到该行,删除完成并标记行作为被删除或用d或U dml_type_id更新。 – Kuberchaun 2010-11-05 00:37:52