Eintragshistorie: Richtiges arbeiten mit Transaktionen an der SQL Daenbank
Compare Page Revisions
Eintragsversion: 07/07/2009 08:59
Beispiel:
Mehrere Anweisungen in einer Transaktion kapseln 1. Dieses Beispiel zeigt wie man richtig mehrere Anweisung in eine Transaktion kapselt und diese
bei einem Fehler zurücksetzt.
DECLARE @intErrorCode INT
BEGIN TRAN T1
DELETE FROM PM_PARTNER
WHERE CU_ID = '1'
SELECT @intErrorCode = ERROR
IF (@intErrorCode <> 0) GOTO PROBLEM
INSERT INTO pm_partner
(cu_id, CU_CUSTOM_INITIALS)
VALUES(newid(), 'KYO')
SELECT @intErrorCode =
ERROR
IF (@intErrorCode <> 0) GOTO PROBLEM
COMMIT TRAN T1
PROBLEM:
IF (@intErrorCode <> 0) BEGIN
ROLLBACK TRAN T1
END
Vorsicht:
Wenn dies nicht richtig gemacht wird kann es sein dass trotz Fehlers Teile der SQL Anweisung ausgeführt werden. Falls die Anweisung zweimal
hintereinander aufgerufen werden sollte, müssen sie ein “GO” am Ende hinzufügen, damit der Server die Anweisung teilen kann.