it-swarm.com.de

Wie mache ich die DROP TABLE-Anweisung rückgängig?

Ich habe versehentlich die Anweisung DROP TABLE für eine falsche Tabelle ausgeführt. Ich habe mehrere Tage alte Backups, mit denen ich die Tabelle und die meisten Daten wiederherstellen kann, aber nicht alle.

Ich weiß, dass SQL Server bereits festgeschriebene Transaktionen nicht zurücksetzen kann, aber ich habe mich gefragt, ob es alternative Möglichkeiten gibt, den Rest der Daten zurückzugewinnen. Jede Hilfe wie einige ungewöhnliche SQL-Skripte oder ähnliches wäre sehr dankbar.

4
Igor Voplov

Wenn Sie Tabellendaten löschen, befinden sich diese noch in der Datenbank, aber SQL Server behandelt sie als freien Speicherplatz und wird sie bald überschreiben. Sie müssen alle Datenbankaktivitäten stoppen oder eine Kopie der MDF- und LDF-Dateien erstellen und prüfen, ob Sie ein Drittanbieter-Tool finden, das dies unterstützt. Ein Tool, das ich kenne, ist ApexSQL Recover , aber ich denke, es gibt wahrscheinlich andere da draußen.

7
John Moore

Wenn die Datenbank vollständig wiederhergestellt ist und die Seiten noch nicht wiederverwendet wurden, können Sie möglicherweise einige dieser Daten aus dem Protokoll wiederherstellen, indem Sie eine Dummy-Tabelle erstellen und Daten aus Dingen wie DBCC PAGE Abrufen.

Die vollständige Technik ist viel zu aufwendig, um hier eine vollständige Antwort zu erhalten, und ich erwarte nicht, dass dies eine langfristige Antwort auf dieser Website ist, und ich möchte auch seinen Inhalt nicht replizieren, aber bitte schauen Sie sich diesen Blog-Beitrag genau an von Mladen Prajdic:

http://weblogs.sqlteam.com/mladenp/archive/2010/10/12/sql-server-ndash-undelete-a-table-and-restore-a-single.aspx

5
Aaron Bertrand