Ich habe in einigen Fällen Transaktionsnutzung gesehen, aber nie wirklich verstanden, in welchen Situationen sie verwendet werden sollten. Wie und wann sollten Transaktionen verwendet werden (Transaktionsanweisung beginnen)? Ich habe gelesen, dass Microsoft nicht vorschlagen, Transaktionsanweisungen (commit, rollback) innerhalb eines Triggers und einer gespeicherten Prozedur zu verwenden.
Transaktionen können in Verbindung mit der Fehlerbehandlung in gespeicherten Prozeduren oder SQL-Skripts beim Einfügen oder Bearbeiten von Daten verwendet werden, um sicherzustellen, dass alles konsistent ist.
Wenn Sie beispielsweise eine gespeicherte Prozedur haben, die Datensätze in eine übergeordnete Tabelle und eine untergeordnete Tabelle einfügt, möchten Sie sicherstellen, dass der übergeordnete Datensatz zuerst eingefügt wird. Wenn dies fehlschlägt, können Sie Ihre Änderungen zurücksetzen, damit Sie keinen verwaisten untergeordneten Datensatz mehr haben.
Erland Sommarskog hat einen großartigen Artikel zur Verwendung der Fehlerbehandlung in SQL Server.
Schließlich hat Microsoft vorgeschlagen, nicht Transaktionen in gespeicherten Prozeduren zu verwenden? Ich würde denken, dass gespeicherte Prozeduren ein idealer Ort sind, um sie zu benutzen.
Wenn ich moey von einem Konto in ein anderes übertrage, möchte ich, dass es 100% erfolgreich ist oder 100% fehlschlägt:
%Vor%Was Sie gelesen haben, vervollständigen Sie den Müll, außer dass Sie BEGIN TRAN nicht in einem Trigger verwenden müssen.
Ein Beispiel aus " Geschachtelte gespeicherte Prozeduren, die TRY enthalten CATCH ROLLBACK Muster? "
Tags und Links sql-server sql-server-2005 sql-server-2008 stored-procedures transactions