CommencerCommencer gratuitement

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

La banque où vous travaillez a décidé d’offrir 100 \( aux comptes ayant moins de 5 000 \). Cependant, le directeur souhaite n’accorder cette somme que s’il n’y a pas plus de 200 comptes en dessous de 5 000 $.

Vous préparez un script pour verser ces 100 \( et, parmi plusieurs façons de procéder, vous choisissez d’ouvrir une transaction puis de mettre à jour chaque compte avec un solde inférieur à 5 000 \). Ensuite, vous vérifiez le nombre de lignes affecté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 ?

Cet exercice fait partie du cours

Transactions et gestion des erreurs dans SQL Server

Afficher le cours

Instructions

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

Exercice interactif pratique

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

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