CommencezCommencez gratuitement

Choisir quand valider (commit) ou annuler (rollback) une transaction

La banque où vous travaillez a décidé de donner 100 \( aux comptes dont le solde est inférieur à 5 000 \). Toutefois, la direction veut accorder cette somme seulement s'il n'y a pas plus de 200 comptes sous le seuil de 5 000 $.

Vous préparez un script pour verser ces 100 \(. Parmi les différentes façons de procéder, vous décidez d'ouvrir une transaction, puis de mettre à jour chaque compte dont le solde est inférieur à 5 000 \). Ensuite, vous vérifiez le nombre de lignes touchées par la mise à jour à l'aide de la fonction @@ROWCOUNT. Si ce nombre est supérieur à 200, vous annulez la transaction (rollback). Sinon, vous la validez (commit).

Comment préparez-vous le script?

Cette activité fait partie du cours

Transactions et gestion des erreurs dans SQL Server

Voir le cours

Instructions de l’exercice

  • Démarrer la transaction.
  • Vérifier si le nombre de lignes touchées est supérieur à 200.
  • Annuler (rollback) la transaction si le nombre de lignes touchées est supérieur à 200.
  • Valider (commit) la transaction si le nombre de lignes touchées est inférieur ou égal à 200.

Exercice interactif pratique

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

-- Begin the transaction
___ ___; 
	UPDATE accounts set current_balance = current_balance + 100
		WHERE current_balance < 5000;
	-- Check number of affected rows
	IF @@ROWCOUNT > ___ 
		BEGIN 
        	-- Rollback the transaction
			___ ___; 
			SELECT 'More accounts than expected. Rolling back'; 
		END
	ELSE
		BEGIN 
        	-- Commit the transaction
			___ ___; 
			SELECT 'Updates commited'; 
		END
Modifier et exécuter le code