2008-09-26 74 views

回答

7

,如果你叫begin transaction你做之前,并没有叫commit,那么你可以调用rollback,否则......你得恢复

+0

斯科特,我想你应该看到马克·布拉克特的答案。根据你的帖子,你可能没有叫Begin Transaction。但是,如果您开始交易,那么这是如何回滚的正确答案。 – Cervo 2008-09-26 22:45:02

0

如果你开头用的begin tran的删除你只需要使用回滚传输

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

0
rollback; 

但是,只有当你在一个事务..

0

我没有备份的数据库上做了这个曾经和能够使用的工具,重播的所有事务日志条目来恢复数据。幸运的是,在我的情况下,我从未截断事务日志。

+0

呵呵。顺便说一下,它是Lumigent?我还没有看到其他人,但如果你知道一个好的免费或便宜的,我很乐意听到它? – Meff 2008-09-26 20:57:45

+0

不记得,它是2002年的一个试用版。 – 2008-09-26 21:06:41

1

这将这样的伎俩,假设你有没有钱:http://www.lumigent.com/products/log_explorer.html

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

+0

早在2002年,我记得使用类似的东西,但试用版足以让我获得数据。 – 2008-09-26 20:59:18

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 
相关问题