使用事务日志回滚事务

时间:2009-06-30 19:26:20

标签: sql-server transactions

是否可以使用Transactionlog文件为特定记录回滚事务?

我正在使用SQL Server 2005

4 个答案:

答案 0 :(得分:10)

本地,没有。不过,我相信有一些昂贵的第三方工具可以做到这一点。

或者,您可以从备份恢复数据库,然后使用STOPAT = '6/30/2009 2:30PM'参数将RESTORE LOGS恢复到某个时间点。

ApexSQL Log Rescue可用。但是,如果您的日志未处于FULL恢复模式,则如果无法恢复,则可能会出现问题。

答案 1 :(得分:5)

据我所知,您的选项是ApexSQL Log(价格昂贵,但有免费试用版)或未记录的SQL Server命令,例如DBCC Log和fn_dblog。

任何这些只有在数据库处于完全恢复模式时才有效,在这种情况下,SQL Server会在事务日志中存储更多详细信息。

此外,我认为这不适用于任何类型的交易。我见过人们使用这种技术来恢复插入,更新,删除,但我真的很确定它是否可以用来恢复说ALTER TABLE或类似的东西。

答案 2 :(得分:4)

就第三方软件而言,您可以免费使用戴尔的Toad软件30天,并且它具有撤消脚本生成功能的事务日志。

答案 3 :(得分:3)

查看RedGate's LogRescue产品。如果没有第三方产品,您可能仅限于将时间点还原到单独的数据库,然后手动将记录复制回生产数据库。