Basis-template für Transaktionen in SQL Server
Wenn ich einfach wickeln Sie meine Anfrage mit:
BEGIN TRANSACTION
COMMIT TRANSACTION
Wenn alles andere fehlschlägt, Innenseite, dass, wird es automatisch zurück?
Vom Blick auf andere Codes, die Sie scheinen, zu prüfen, ob ein Fehler, wenn ein Fehler vorliegt, dann tun Sie eine GOTO-Anweisung, die ruft dann ROLLBACK der TRANSAKTION
Aber das scheint Zut Arbeit, um zu prüfen, IF( @@ERROR <> 0) nach jedem insert/update.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich in der Regel tun Sie etwas wie dies in meinem gespeicherten Prozeduren. Es hält die Dinge schön und sicher und übergibt zusammen alle Fehler, die auftreten.
ja, es ist wichtig, um explizit ein rollback für die Transaktion in dem Fall, dass es nicht funktioniert.
Ich in der Regel sagen, mein Sohn, müssen Sie nur die Zähne zu putzen, die Sie behalten möchten.
In diesem Fall benötigen Sie nur ein rollback für die Befehle, die Sie nicht ausführen wollen.
Dadurch wird automatisch ein rollback für die Transaktion in Fall off Fehler
Für die Transaktion Kontrolle, die Sie mit begin, commit und rollback. Beginnen Sie eine Transaktion durch Lieferung BEGIN TRANSACTION. Dann setzen Sie die verschiedenen SQL-Anweisungen, die Sie brauchen. Dann beenden Sie die Transaktion durch die Ausgabe entweder mit einer commit-oder rollback. COMMIT TRANSACTION commit für alle änderungen, die Sie Tat, um die Datenbank nach der Anweisung BEGIN und dauerhaft, so zu sprechen. ROLLBACK der TRANSAKTION wird rollback alle änderungen, die Sie Tat, um die Datenbank nach der BEGIN-Anweisung. Es wird jedoch keine Variablenwerte ändern.
Beispiel: