2008-09-26 14 views

Antwort

7

wenn Sie begin transaction aufgerufen, bevor Sie es getan haben, und noch nicht commit genannt, dann können Sie rollback nennen, sonst ... du wirst haben

+0

Scott, ich glaube, Sie Mark Brackett Antwort sehen sollte. Basierend auf Ihrem Post haben Sie wahrscheinlich die Transaktion Begin Transaction nicht aufgerufen. Aber das ist die richtige Antwort darauf, wie Sie etwas zurückrollen können, wenn Sie eine Transaktion gestartet haben. – Cervo

2

Wiederherstellung von einem Backup.

0

wiederherstellen, wenn Sie das Löschen mit einem tran beginnen voran Sie verwenden nur Rollback

wenn nicht, starten Sie die Suche nach Ihren Backups.

0
rollback; 

Aber nur, wenn Sie in einer Transaktion waren ..

0

habe ich dieses ein Mal auf einer Datenbank ohne Sicherungen und war in der Lage, die Daten mit einem Dienstprogramm wiederherstellen, die alle Transaktionsprotokolleinträge wiederholt. Zum Glück hatte ich das Transaktionslog in meiner Situation nie gekürzt.

+0

Oh Snap. Übrigens, war es Lumigent? Ich habe keine anderen gesehen, aber wenn du von einem guten freien oder billigen wissen würdest, würde ich liebend gerne davon hören? – Meff

+0

Ich erinnere mich nicht, es war eine Testversion von etwas aus dem Jahr 2002. –

1

Dies wird den Trick tun, Sie haben das Geld angenommen: http://www.lumigent.com/products/log_explorer.html

aus, dass abgesehen, Backups, wie jeder sagte, sonst

+0

Im Jahr 2002 erinnere ich mich an etwas ähnliches, aber die Testversion war genug für mich, um die Daten zurück zu bekommen. –

3

Sie haben eine aktuelle vollständige Sicherung der Datenbank, Backup Ihres Transaktionsprotokoll Unter der Annahme, Jetzt, und stellen Sie es zu einem Zeitpunkt vor dem Löschen wieder her. Wenn sich seither Live-Daten geändert haben, möchten Sie sie wahrscheinlich in einer anderen Datenbank wiederherstellen und die gelöschten Datensätze manuell einfügen.

Aus dem Gedächtnis, so Syntax ein wenig weg sein kann - aber Sie bekommen die Idee:

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

Ich bin mir nicht sicher über Ihre genaue Syntax, wie ich das selbst nie getan habe ... zum Glück ... aber ich denke, das ist definitiv die richtige Richtung! – mattruma

+0

Ich denke, das ist die richtige Antwort. Wenn das Poster fragt, wie es gelöscht werden kann, hat er wahrscheinlich nicht begonnen. – Cervo