IniziaInizia gratis

XACT_ABORT e THROW

I clienti più facoltosi della banca in cui lavori hanno deciso di donare lo 0,01% del loro current_balance a un'organizzazione non profit. Devi preparare lo script per aggiornare i conti dei clienti, ma solo per quelli con un current_balance superiore a $5.000.000. La direttrice della banca ti dice che, se non ci sono almeno 10 clienti facoltosi, non devi eseguire questa operazione, perché vuole intervistare altri clienti.

Prepari uno script e, tra le varie opzioni, decidi di usare XACT_ABORT in combinazione con THROW. In questo modo, se il numero di righe interessate è minore o uguale a 10, puoi generare un errore così che la transazione venga annullata.

Questo esercizio fa parte del corso

Transazioni e gestione degli errori in SQL Server

Visualizza il corso

Istruzioni dell'esercizio

  • Usa l'impostazione appropriata di XACT_ABORT.
  • Avvia la transazione.
  • Se il numero di righe interessate è minore o uguale a 10, genera l'errore usando l'istruzione THROW, con numero 55000.
  • Esegui il commit della transazione se il numero di righe interessate è maggiore di 10.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

-- 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
		___ ___; 
Modifica ed esegui il codice