Utilizarea nivelului de izolare READ UNCOMMITTED
Un client nou vine la banca ta pentru a deschide un cont. Introduci datele sale în sistem, declanșând rularea unui script similar cu acesta:
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
În acel moment, colegul tău din marketing începe să trimită e-mailuri tuturor clienților. Se organizează o tombolă pentru un autoturism! Scriptul pe care îl execută el preia datele tuturor clienților, inclusiv ale ultimului client pe care l-ai inserat. Acest script începe să ruleze după primul INSERT, dar înainte de COMMIT TRAN.
Cum este posibil acest lucru?
Acest exercițiu face parte din cursul
Tranzacții și gestionarea erorilor în SQL Server
Instrucțiuni pentru exercițiu
- Setează nivelul de izolare
READ UNCOMMITTED. - Selectează
first_name,last_name,emailșiphonedin tabelacustomers.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
-- Set the appropriate isolation level
___ TRANSACTION ___ LEVEL ___ ___
-- Select first_name, last_name, email and phone
SELECT
___,
___,
___,
___
FROM customers;