LoslegenKostenlos loslegen

Entscheiden, wann eine Transaktion committed oder zurückgerollt wird

Die Bank, in der du arbeitest, hat beschlossen, Konten mit weniger als 5.000 \( jeweils 100 \) gutzuschreiben. Allerdings möchte der Bankdirektor das nur tun, wenn es nicht mehr als 200 Konten mit weniger als 5.000 $ gibt.

Du bereitest ein Skript vor, um diese 100 \( zu vergeben. Von den vielen Möglichkeiten entscheidest du dich, eine Transaktion zu öffnen und dann jedes Konto mit einem Kontostand von weniger als 5.000 \) zu aktualisieren. Danach prüfst du die Anzahl der von der Aktualisierung betroffenen Zeilen mit der Funktion @@ROWCOUNT. Ist diese Zahl größer als 200, rollst du die Transaktion zurück. Andernfalls führst du ein COMMIT durch.

Wie bereitest du das Skript vor?

Diese Übung ist Teil des Kurses

Transaktionen und Fehlerbehandlung in SQL Server

Kurs anzeigen

Anleitung zur Übung

  • Starte die Transaktion.
  • Prüfe, ob die Anzahl der betroffenen Zeilen größer als 200 ist.
  • Rolle die Transaktion zurück, wenn die Anzahl der betroffenen Zeilen mehr als 200 beträgt.
  • Führe ein COMMIT durch, wenn die Anzahl der betroffenen Zeilen kleiner oder gleich 200 ist.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

-- Begin the transaction
___ ___; 
	UPDATE accounts set current_balance = current_balance + 100
		WHERE current_balance < 5000;
	-- Check number of affected rows
	IF @@ROWCOUNT > ___ 
		BEGIN 
        	-- Rollback the transaction
			___ ___; 
			SELECT 'More accounts than expected. Rolling back'; 
		END
	ELSE
		BEGIN 
        	-- Commit the transaction
			___ ___; 
			SELECT 'Updates commited'; 
		END
Code bearbeiten und ausführen