Verwendung von Transaktionen (Transaktion beginnen, Transaktion einreichen)?

8

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.

    
juur 26.09.2010, 15:59
quelle

2 Antworten

5

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.

    
LittleBobbyTables 26.09.2010, 16:14
quelle
2

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? "

    
gbn 26.09.2010 16:18
quelle