2008-09-26 5 views

Répondre

7

si vous appelé begin transaction avant vous, et n'ont pas encore appelé commit, vous pouvez appeler rollback, sinon ... vous allez devoir restaurer

+0

Scott, je pense que vous devriez voir la réponse de Mark Brackett. Basé sur votre publication, vous n'avez probablement pas appelé Begin Transaction. Mais c'est la bonne réponse sur la façon de rouler quelque chose si vous avez commencé une transaction. – Cervo

2

restaurer à partir d'une sauvegarde.

0

si vous Préfacé la suppression d'un begin tran vous utilisez simplement rollback tran

sinon, commencez à chercher vos sauvegardes.

0
rollback; 

Mais seulement si vous étiez dans une transaction ..

0

Je l'ai fait une fois sur une base de données sans sauvegarde et a été en mesure de récupérer les données en utilisant un utilitaire qui rejoue toutes les entrées du journal des transactions. Heureusement, dans ma situation, je n'avais jamais tronqué le journal des transactions.

+0

Oh Snap. Btw, était-ce Lumigent? Je n'en ai pas vu d'autres mais si vous connaissez un bon gratuit ou pas cher que j'adorerais entendre à ce sujet? – Meff

+0

Je ne me souviens pas, c'était une version d'essai de quelque chose de 2002. –

1

Cela fera l'affaire, en supposant que vous avez l'argent: http://www.lumigent.com/products/log_explorer.html

En dehors de cela, les sauvegardes, comme tout le monde dit

+0

En 2002, je me souviens d'avoir utilisé quelque chose de similaire, mais la version d'essai me suffisait pour récupérer les données. –

3

En supposant que vous avez une sauvegarde complète récente de votre base de données, la sauvegarde de votre journal des transactions maintenant, et le restaurer à un moment donné avant votre suppression. Si des données en direct ont été modifiées depuis, vous souhaiterez probablement les restaurer dans une base de données différente et insérer manuellement les enregistrements supprimés.

De mémoire, alors la syntaxe peut être un peu hors - mais vous voyez l'idée:

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 
+0

Je ne suis pas sûr de votre syntaxe exacte car je n'ai jamais fait cela moi-même ... heureusement ... mais je pense que c'est certainement la bonne direction! – mattruma

+0

Je pense que c'est la bonne réponse. Si l'affiche demande comment restaurer, il n'a probablement pas commencé à tran. – Cervo

Questions connexes