Použití úrovně izolace READ UNCOMMITTED
Do banky přichází nový klient, aby si otevřel účet. Vložíš jeho data do systému, čímž se spustí skript podobný tomuto:
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
Ve stejnou chvíli začne tvůj kolega z marketingu rozesílat e-maily všem zákazníkům. Chystá se totiž tombola o auto! Skript, který spustí, načte data všech zákazníků – včetně toho posledního, kterého jsi právě vložil. Tento skript se začne spouštět po prvním vložení záznamu, ale ještě před COMMIT TRAN.
Jak je to možné?
Toto cvičení je součástí kurzu
Transakce a zpracování chyb v SQL Serveru
Pokyny k cvičení
- Nastav úroveň izolace
READ UNCOMMITTED. - Vyber sloupce
first_name,last_name,emailaphonez tabulkycustomers.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
-- Set the appropriate isolation level
___ TRANSACTION ___ LEVEL ___ ___
-- Select first_name, last_name, email and phone
SELECT
___,
___,
___,
___
FROM customers;