Kom igångKom igång gratis

XACT_ABORT och THROW

Bankens förmögnaste kunder har beslutat att donera 0,01 % av sitt current_balance till en ideell organisation. Du har fått i uppdrag att förbereda skriptet för att uppdatera kundernas konton, men bara för de konton där current_balance överstiger 5 000 000 dollar. Bankdirektören meddelar att om det inte finns minst 10 förmögna kunder ska operationen inte genomföras, eftersom hon vill intervjua fler kunder.

Du förbereder ett skript och väljer bland flera möjliga lösningar att använda XACT_ABORT i kombination med THROW. På så sätt kan du, om antalet påverkade rader är 10 eller färre, utlösa ett fel så att transaktionen återställs.

Den här övningen är en del av kursen

Transaktioner och felhantering i SQL Server

Visa kurs

Övningsinstruktioner

  • Använd rätt inställning för XACT_ABORT.
  • Påbörja transaktionen.
  • Om antalet påverkade rader är 10 eller färre, utlös felet med hjälp av THROW-satsen och numret 55000.
  • Genomför transaktionen om antalet påverkade rader är fler än 10.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

-- 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
		___ ___; 
Redigera och kör kod