Utiliser le niveau d’isolement READ UNCOMMITTED
Une nouvelle cliente se rend dans votre banque pour ouvrir un compte. Vous saisissez ses informations dans votre système, ce qui déclenche l’exécution d’un script comme celui-ci :
BEGIN TRAN
INSERT INTO customers (first_name, last_name, email, phone)
VALUES ('Ann', 'Ros', '[email protected]', '555555555')
DECLARE @cust_id INT = scope_identity()
INSERT INTO accounts (account_number, customer_id, current_balance)
VALUES ('55555555555010121212', @cust_id, 150)
COMMIT TRAN
À ce moment-là, votre collègue du marketing commence à envoyer des e‑mails à tous les clients. Il y aura une tombola pour gagner une voiture ! Le script qu’il exécute récupère les données de tous les clients, y compris celles de la dernière cliente que vous venez d’insérer. Ce script démarre après la première insertion mais avant le COMMIT TRAN.
Comment est-ce possible ?
Cet exercice fait partie du cours
Transactions et gestion des erreurs dans SQL Server
Instructions
- Définissez le niveau d’isolement
READ UNCOMMITTED. - Sélectionnez
first_name,last_name,emailetphonedepuis la tablecustomers.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
-- Set the appropriate isolation level
___ TRANSACTION ___ LEVEL ___ ___
-- Select first_name, last_name, email and phone
SELECT
___,
___,
___,
___
FROM customers;