Previne phantom reads doar pentru anumite rânduri
Trebuie să analizezi câteva date despre clienții băncii tale cu customer_id între 1 și 10. Vrei să blochezi doar rândurile din tabelul customers cu customer_id între 1 și 10. Astfel, te asiguri că nimeni nu va putea modifica aceste rânduri, permițând în același timp altor tranzacții să lucreze cu restul tabelului.
Trebuie să selectezi clienții și să execuți din nou câteva operații matematice. (Nici în acest exercițiu nu ne vom concentra pe aceste operații.) După aceea, vrei să selectezi din nou clienții cu customer_id între 1 și 10, asigurându-te că nimic nu s-a schimbat.
Cum pregătești scriptul?
Acest exercițiu face parte din cursul
Tranzacții și gestionarea erorilor în SQL Server
Instrucțiuni pentru exercițiu
- Setează nivelul de izolare corespunzător pentru a preveni phantom reads.
- Începe o tranzacție.
- Selectează clienții pe care vrei să îi blochezi.
- Confirmă tranzacția.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
-- 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
___ ___