LoslegenKostenlos loslegen

XACT_ABORT und THROW

Die vermögendsten Kundinnen und Kunden der Bank, in der du arbeitest, haben beschlossen, 0,01 % ihres current_balance an eine Non-Profit-Organisation zu spenden. Du sollst das Skript vorbereiten, um die Konten zu aktualisieren, aber nur für diejenigen mit einem current_balance von mehr als 5.000.000 $. Die Direktorin der Bank sagt dir, dass du diese Operation nicht durchführen sollst, wenn es nicht mindestens 10 vermögende Kundinnen/Kunden gibt, da sie noch mehr Personen befragen möchte.

Du bereitest ein Skript vor und entscheidest dich – von mehreren möglichen Wegen – XACT_ABORT in Kombination mit THROW zu verwenden. So kannst du, falls die Anzahl der betroffenen Zeilen kleiner oder gleich 10 ist, einen Fehler auslösen, damit die Transaktion zurückgesetzt wird.

Diese Übung ist Teil des Kurses

Transaktionen und Fehlerbehandlung in SQL Server

Kurs anzeigen

Anleitung zur Übung

  • Verwende die passende Einstellung für XACT_ABORT.
  • Starte die Transaktion.
  • Wenn die Anzahl der betroffenen Zeilen kleiner oder gleich 10 ist, löse den Fehler mit der Anweisung THROW aus, und verwende dabei die Nummer 55000.
  • Bestätige die Transaktion (COMMIT), wenn die Anzahl der betroffenen Zeilen größer als 10 ist.

Interaktive Übung

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

-- Use the appropriate setting
SET XACT_ABORT ___;
-- Begin the transaction
___ ___; 
	UPDATE accounts set current_balance = current_balance - current_balance * 0.01 / 100
		WHERE current_balance > 5000000;
	IF @@ROWCOUNT <= 10	
    	-- Throw the error
		___ ___, 'Not enough wealthy customers!', 1;
	ELSE		
    	-- Commit the transaction
		___ ___; 
Code bearbeiten und ausführen