sql 2005回滚事务

时间:2020-03-06 14:48:27  来源:igfitidea点击:

我只是从表中删除

如何回滚或者取消删除行?

解决方案

从备份还原。

如果我们在执行此操作之前先调用了"开始交易",但尚未调用"提交",则可以调用"回滚",否则...我们将不得不恢复

如果我们以开始tran开头删除操作,则只需使用rollback tran

如果没有,请开始寻找备份。

rollback;

但是只有在我们进行交易时..

我在没有备份的数据库上执行了一次此操作,并且能够使用重放所有事务日志条目的实用程序来恢复数据。幸运的是,在我的情况下,我从未截断过事务日志。

假设我们有钱,这将达到目的:http://www.lumigent.com/products/log_explorer.html

除此之外,备份就像其他人一样

假设我们最近对数据库进行了完整备份,请立即备份事务日志,并将其还原到删除之前的某个时间点。如果此后有实时数据发生更改,则可能需要将其还原到其他数据库,然后手动插入已删除的记录。

从内存来看,语法可能会有些许偏离,但我们会明白:

BACKUP LOG DBName
   TO DISK='C:\DBName.TRN'
GO

RESTORE DATABASE DBName2
   FROM DISK='C:\DBName.BAK'
   WITH 
       MOVE 'DBName.MDF' TO 'C:\DBName2.MDF',
       MOVE 'DBName.LDF' TO 'C:\DBName2.LDF',
       NORECOVERY
GO

RESTORE LOG DBName2
   FROM DISK='C:\DBName.TRN'
   WITH
       RECOVERY,
       STOPAT = '09/26/2008 17:00'
GO