CommencerCommencer 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 à une organisation à but non lucratif. Vous êtes chargé de préparer le script pour mettre à jour les comptes des clients, mais uniquement 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 d’abord rencontrer davantage de clients.

Vous préparez un script et, parmi les différentes façons de faire, vous choisissez d’utiliser XACT_ABORT en combinaison avec THROW. Ainsi, si le nombre de lignes affectées est inférieur ou égal à 10, vous pouvez lever une erreur pour que la transaction soit annulée.

Cet exercice fait partie du cours

Transactions et gestion des erreurs dans SQL Server

Afficher le cours

Instructions

  • Utilisez le paramétrage approprié de XACT_ABORT.
  • Démarrez la transaction.
  • Si le nombre de lignes affectées est inférieur ou égal à 10, levez l’erreur à l’aide de l’instruction THROW, avec le numéro 55000.
  • Validez la transaction si le nombre de lignes affectées est supérieur à 10.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

-- 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