sql server 2008 komplett Löschen Sie die Zeilen in sqlserver, so dass Sie eine Festschreibung zurücksetzen können



sql server drop database delete files (1)

Ich habe diese Frage gestern Funky Delete Issue gestellt

Jetzt möchte ich jetzt sicher löschen.

Wie verwende ich also Commits und Transaktionen und diesen syntaktischen Zucker, um meine @ $$ abzudecken, denn gestern habe ich 51.000 Zeilen dummerweise gelöscht. Ich hatte ein Backup, aber ich dachte HEILIG ^% $ # das war zu einfach.

Also wie kann ich sicher:

    DELETE FROM bBoxHeader
    WHERE bBoxHeader.bHeaderId <> '1099' 
    -- Ooops meant that to be equal. How do I roll back?

Wie wickle ich das ein, damit ich nicht 51000 Zeilen wegpuste


Wenn Sie nicht überprüfte Ad-hoc-DML für Produktionsdaten ausführen, sollten Sie sie immer in eine BEGIN TRANSACTION mit einem nachfolgenden COMMIT und ROLLBACK einbinden. Wenn Sie es ohne Überprüfung ausführen und dann feststellen, dass Sie es vermasselt haben, können Sie es zurückrollen. Ansonsten kannst du es begehen.

BEGIN TRANSACTION;

DELETE ... WHERE ...

-- COMMIT TRANSACTION;
---^^^^^^ if the number of rows affected is correct, highlight this & execute

-- ROLLBACK TRANSACTION;
---^^^^^^^^ otherwise highlight this and execute

Beachten Sie, dass dies auch dazu führen kann, dass Sie HOLY sagen, was auch immer, denn wenn Sie vergessen, entweder den Rollback oder den Commit auszuführen, dann gehen Sie zum Mittagessen oder gehen Sie für das Wochenende nach Hause, Sie könnten wieder zur Arbeit gehen und auf Ihren rosa Slip schauen.





transactions