Empêcher les lectures fantômes sur certaines lignes uniquement
Vous devez analyser des données concernant vos clients de banque dont le customer_id est compris entre 1 et 10. Vous voulez uniquement verrouiller les lignes de la table customers dont le customer_id est compris entre 1 et 10. Ce faisant, vous garantissez que personne ne pourra modifier ces lignes et vous permettez aux autres transactions de travailler sur le reste de la table.
Vous devez sélectionner ces clients et exécuter à nouveau quelques opérations mathématiques. (Nous ne nous concentrerons pas sur ces opérations dans cet exercice.) Ensuite, vous souhaitez sélectionner à nouveau les clients avec un customer_id entre 1 et 10, en vous assurant que rien n’a changé.
Comment préparer le script ?
Cet exercice fait partie du cours
Transactions et gestion des erreurs dans SQL Server
Instructions
- Définissez le niveau d’isolation approprié pour empêcher les lectures fantômes.
- Démarrez une transaction.
- Sélectionnez les clients que vous souhaitez verrouiller.
- Validez la transaction.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
-- Set the appropriate isolation level
___ ___ ___ ___ ___
-- Begin a transaction
___ ___
-- Select customer_id between 1 and 10
SELECT *
FROM customers
___ customer_id ___ ___ AND ___;
-- After completing some mathematical operation, select customer_id between 1 and 10
SELECT *
FROM customers
___ customer_id ___ ___ AND ___;
-- Commit the transaction
___ ___