2010-11-22 5 views
2

Es ist eine Testumgebung, ich brauchte einige Daten, um eine Update-Abfrage zu testen, aber versehentlich eine Spalte in allen Zeilen aktualisiert, um falsche Daten zu haben. Muss ich ein Backup verwenden, um die Daten in die vorherige Instanz zurückzuspeichern, oder gibt es ein Geheimnis mit einem Transaktionsprotokoll, das ich nutzen kann?Wie mache ich eine Update-Anweisung, die ich an eine Datenbank gemacht habe

Vielen Dank im Voraus.

+0

Sollen Transaktionen wie in BEGIN TRAN T1 ... COMMIT TRAN T1 ODER Rollback..etc verwendet werden. – JonH

Antwort

5

Es gibt ein nicht geheimes Transaktionsprotokoll, das als Transaktionsprotokoll bezeichnet wird und das Sie bis zu einem bestimmten Zeitpunkt wiederherstellen können. Here's how... Diese ärgerliche kleine Datei mit der Erweiterung ldf ist das Transaktionsprotokoll, im Gegensatz zu der .mdf-Datei, die Ihre normalen Datenbankdaten sind.

Wenn Sie das Transaktionslog (ldf) nicht gekürzt oder sonstwie mucked haben, sollten Sie in der Lage sein, genau die Art von Wiederherstellung (rückgängig zu machen), nach der Sie suchen.

-2

Mann ... im sorry aber es macht mich lachen: D so, wie Sie die Frage Phrase ...

Soweit ich weiß, man kann aktualisierten Daten rückgängig machen :(

Hoffnung, dass i bin falsch

Viel Glück

+2

-1 Ja, es war eine süße Frage und das ist keine süße Antwort. Es ist falsch und hätte bestenfalls ein Kommentar sein sollen. Willkommen bei SO Rami, aber plz lesen Sie die FAQ. Danke. –

+0

ops, tut mir leid. –

+0

ausschließlich für Bildungszwecke, was ist so lächerlich an der Frage? – Haoest

1

Nicht, wenn Sie Ihre sQL in einem Transaktionsblock eingewickelt -... beginnen Transaktion Rollback, begehen Dass man der gefährlichen Dinge über sQL Server mit Oracle Sie müssen körperlich jedem Commit Transaktion, die viel sicherer ist imho.

+0

das ist zu spät, Sir. – Haoest

+0

Sie könnten dies in Zukunft nützlich finden. Es deaktiviert automatisches Commit. Beachten Sie, dass Sie Ihre eigenen Transaktionen verwalten müssen http://www.dataprix.com/en/blogs/il-masacratore/sql08-how-disable-autocommit-sql-server-management-studio – hoakey

2

Wenn sich Ihre Datenbank im vollständigen Wiederherstellungsmodus befand, können Sie versuchen, das Transaktionsprotokoll mithilfe eines Tools von Drittanbietern wie this one zu lesen, oder Sie können dies selbst mit dem DBCC LOG-Befehl versuchen.

Wenn db vollständig wiederhergestellt ist, werden viele Daten im Transaktionslog gespeichert, aber es ist nicht leicht lesbar, weil MS die offizielle Dokumentation dafür nicht poliert hat und weil es keine Wiederherstellung ist, sondern dafür sorgt, dass die Transaktion korrekt ausgeführt wird.

Es gibt jedoch Workarounds zu lesen, wie mit dem Tool oben (kostenpflichtiges Tool leider hat aber eine Probe) oder Decodierung der Ergebnisse von DBCC LOG selbst.

Verwandte Themen