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