Ich wollte wissen, was passiert, wenn ich Abfrageausführung während des Abschneidens abbrechen, sind die Datensätze gelöscht? Und gibt es eine Möglichkeit, sie wiederherzustellen? Truncate wurde am Tisch aktiviert, die 1,5 Millionen Datensätze enthielt Aus einer kleinen Suche in Google verstehe ich, dass die Antwort nein ist, aber ich wollte sicher sein. Ich verwende SQL Server 2005Abbrechen der Abfrage beim Abschneiden
Antwort
Truncate
die Zuordnung der Seiten, die einer Tabelle zugeordnet sind.
Dies ist immer noch atomar, in dem Sie abbrechen können und es Rollback haben. Sie können auch eine TRUNCATE
in eine explizite Transaktion einschließen und einen Rollback durchführen.
Sobald Sie die Transaktion festschreiben, sind die Datensätze jedoch weg. Im Gegensatz zu DELETE
gibt es keinen Eintrag im Transaktionslog des Datensatzinhalts, da die Aktion minimal protokolliert wird.
Gute Erklärung auf this Link
Wie ich verstehe, wenn Sie eine Transaktionssteuerung, sowohl DELETE und TRUNCATE kann rückgängig gemacht werden.
Der Unterschied ist, ohne eine Transaktion, wenn Sie eine DELETE können Sie Ihre Daten wiederherstellen mit einer Wiederherstellung des Protokolls zum Beispiel, was Sie tun können nicht auf einer TRUNCATE, weil die Löschung wird row-by protokolliert werden -row und das Abschneiden, wie @JNK hervorhob, wird minimal protokolliert.
- 1. SQL-Abfrage mit Prozesszeitlimit abbrechen
- 2. numpy ndarray throw Ausnahme beim Abschneiden der Zeichenfolge
- 3. Wie zu stoppen/Abbrechen Abfrage abbrechen Schaltfläche von ASP.net Webformular
- 4. Tabelle innerhalb der Transaktion abschneiden
- 5. Fehler beim Abbrechen des showInputDialogs
- 6. C# Abbrechen der Schleife beim Drücken der Taste
- 7. Datei abschneiden
- 8. Abfrage abbrechen, wenn SUM erreicht ist (mysql)
- 9. PostgreSQL: Abfrage abbrechen von C/C++ Programm
- 10. Wie kann ich eine Hibernate-Abfrage abbrechen
- 11. Abbrechen eines früheren Jquery-Formulars beim Übermitteln der Nachricht
- 12. Erhalte Autorisierungsfehler beim Abbrechen der Twitter-Autorisierung mit Fabric SDK
- 13. Abbrechen der Hintergrundaufgabe beim Zurückkehren in den Vordergrund
- 14. jQuery: Automatisches Abbrechen von AjaxRequests beim Entladen der Seite?
- 15. Zeichenkette an der nächsten Wortgrenze abschneiden
- 16. Puffern der Prozessausgabe, die Abschneiden verursacht?
- 17. Abbrechen der AJAX-Anfrage
- 18. Grails - Ausnahme beim Stoppen/Abbrechen eines Uploads
- 19. App Absturz beim Klick auf Abbrechen Alertview
- 20. VBA - Fehler beim Abbrechen Getfolder vermeiden
- 21. Abschneiden chinesischen Text
- 22. java httpurlconnection abschneiden html
- 23. CGImageCreateWithImageInRect das Abschneiden
- 24. Kamera Abschneiden Szene
- 25. Abschneiden vor SqlBulkCopy
- 26. Abschneiden Ellipse ohne Breite
- 27. Stdin Linienlänge abschneiden?
- 28. Text in d3 abschneiden
- 29. Abschneiden Datensatz nach Maximalwert
- 30. Storyboard Dauer Abschneiden Animation
Wenn das Abschneiden Teil einer Transaktion ist, die nicht festgeschrieben ist, kann das Abbrechen der Abfrageausführung dazu führen, dass die Datensätze wiederhergestellt werden. –
Wenn es Ihnen tatsächlich gelingt, das Programm abzubrechen und keine explizite Transaktion durchzuführen, wird es als Teil einer Auto-Commit-Transaktion zurückgesetzt. Wahrscheinlich unwahrscheinlich, obwohl als truncate ist ziemlich schnell und verzögerte truncate kann für große Tabellen verwendet werden. –
Es war kein Teil der Transaktion. Als ich nach der Kündigung gezählt habe, hatte es nur 300.000 Datensätze. Ich denke, der Rest ist für immer weg ... – Cat