Używanie poziomu izolacji READ UNCOMMITTED
Do twojego banku przychodzi nowy klient, aby otworzyć konto. Wprowadzasz jego dane do systemu, co uruchamia skrypt podobny do poniższego:
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
W tym samym czasie twój kolega z działu marketingu zaczyna wysyłać e-maile do wszystkich klientów. Szykuje się losowanie samochodu! Uruchamiany przez niego skrypt pobiera dane każdego klienta – w tym dane klienta, którego właśnie dodajesz. Skrypt ten startuje po wykonaniu pierwszego INSERT, ale jeszcze przed instrukcją COMMIT TRAN.
Jak to możliwe?
To ćwiczenie jest częścią kursu
Transakcje i obsługa błędów w SQL Server
Instrukcje do ćwiczenia
- Ustaw poziom izolacji
READ UNCOMMITTED. - Wybierz kolumny
first_name,last_name,emailiphonez tabelicustomers.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
-- Set the appropriate isolation level
___ TRANSACTION ___ LEVEL ___ ___
-- Select first_name, last_name, email and phone
SELECT
___,
___,
___,
___
FROM customers;