CommencezCommencez gratuitement

XACT_ABORT et THROW

Les clients les plus fortunés de la banque où vous travaillez ont décidé de donner 0,01 % de leur current_balance à un organisme sans but lucratif. Vous êtes chargé de préparer le script pour mettre à jour les comptes de ces clients, mais seulement pour les comptes dont le current_balance dépasse 5 000 000 $. La directrice de la banque vous indique que s'il n'y a pas au moins 10 clients fortunés, vous ne devez pas effectuer cette opération, car elle souhaite rencontrer d'autres clients.

Vous préparez un script et, parmi plusieurs approches possibles, vous décidez d'utiliser XACT_ABORT en combinaison avec THROW. Ainsi, si le nombre de lignes touchées est inférieur ou égal à 10, vous pouvez lever une erreur afin que la transaction soit annulée.

Cette activité fait partie du cours

Transactions et gestion des erreurs dans SQL Server

Voir le cours

Instructions de l’exercice

  • Utilisez le paramètre approprié de XACT_ABORT.
  • Commencez la transaction.
  • Si le nombre de lignes touchées est inférieur ou égal à 10, levez l'erreur avec l'instruction THROW, avec le numéro 55000.
  • Validez la transaction si le nombre de lignes touchées est supérieur à 10.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

-- 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
		___ ___; 
Modifier et exécuter le code