sql 2005回滚事务

时间:2008-09-26 20:38:39

标签: sql-server

我刚刚从表

中删除了

如何回滚或取消删除行?

7 个答案:

答案 0 :(得分:7)

如果您在执行此操作前致电begin transaction,但尚未拨打commit,则可以致电rollback,否则......您将不得不恢复

答案 1 :(得分:3)

假设您最近有数据库的完整备份,请立即备份您的事务日志,并将其还原到删除之前的某个时间点。如果从那时起已经更改了实时数据,您可能希望将其还原到其他数据库,并手动插入已删除的记录。

从内存来看,语法可能有点偏离 - 但你明白了:

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

答案 2 :(得分:2)

从备份恢复。

答案 3 :(得分:1)

假设你有钱,这就可以解决问题:http://www.lumigent.com/products/log_explorer.html

除此之外,备份和其他人一样说

答案 4 :(得分:0)

如果您使用begin tran开始删除,则只需使用rollback tran

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

答案 5 :(得分:0)

rollback;

但是,只有你在交易中..

答案 6 :(得分:0)

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