ROLLBACK TRANSACTION in SQL Server 2005

SQL Server 2005 neu intoduced den Weg zum Rollback für die Transaktionen in SQL Server 2005

SET XACT_ABORT ON

wenn XACT_ABORT ist auf. Die T-SQL-Anweisungen wird automatisch Rollback der Transaktion, wenn Fehler aufgetreten in Aussagen.

SET XACT_ABORT ON

Verwendung der EMP
Begin Tran
Legen Sie in EmpInfo Werte(1)
Legen Sie in EmpInfo Werte(1) — Diese Erklärung hebt den Primärschlüssel Fehler
Legen Sie in EmpInfo Werte(2)
Commit Tran

Die erste Zeile der Statment wird ohne Fehler ausgeführt. Der Primärschlüssel Fehler wird in zweiter Linie zu erhöhen. Aber der gesamte Block Transaktion wird nicht verpflichtet werden, weil die in XACT_ABORT auf.

1 Kommentar zu ROLLBACK TRANSACTION in SQL Server 2005

  • noreply@blogger.com (Todd)

    Sie sollten beachten, dass die aktuelle XACT_ABORT * Batch beendet *, nicht der gesamte Befehl. Chargen werden mit dem Schlüsselwort GO getrennt. Die Ausführung wird zu Beginn der nächsten Charge weiterhin.

    Diese Funktion ist auch in SQL Server 2000, obwohl es verhält sich etwas anders für verschiedene Fehler.

    In SQL 2000, Es gibt Fälle, in denen XACT_ABORT nicht Rollback für die Transaktion automatisch.

    Zum Beispiel:

    Einfügen in einen ungültigen Spaltennamen.

    Einfügen in einen Primär-Schlüssel mit IDENTITY_INSERT OFF.

    Ausführen einer SELECT, die eine nicht vorhandene UDF verwendet.

    Diese Arten von Fehlern sind in der Regel aufgrund eines schlecht verfasste Befehl, so dass sie nicht in den Tag zu Tag Arbeitsweise eines Programms auftreten, es sei denn jemand ändert das Schema. Aber ich Rechenschaft über ihre Möglichkeit, beim Erstellen von Datenbank-Update-Skripte bei der Bereitstellung einer neuen Version eines Projekts, Einsatz nur für den Fall nicht so wie geplant.

    Es gibt Wege, um diese Fehler zu behandeln. Ihr Commit sollte in der Batch-Ausführung der DML-Anweisungen sein. Nach der Charge (nach dem Schlüsselwort GO) Sie können die @ @ TRANCOUNT zu sehen, wenn es größer als Null ist und entsprechend handeln. Normalerweise Rollback der Transaktion.

    Transaktionen können sich über Chargen, so können Sie ein Rollback in einer nachfolgenden Batch ausführen.

Lassen Sie eine Antwort

Sie können Diese HTML-Tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>