Voorkom phantom reads voor slechts enkele rijen
Je moet enkele gegevens analyseren van je bankklanten met customer_id tussen 1 en 10. Je wilt alleen de rijen van de tabel customers vergrendelen met customer_id tussen 1 en 10. Zo zorg je ervoor dat niemand deze rijen kan wijzigen, terwijl je andere transacties toestaat om met de rest van de tabel te werken.
Je moet de klanten selecteren en opnieuw wat wiskundige bewerkingen uitvoeren. (We focussen in deze oefening niet op die bewerkingen.) Daarna wil je de klanten met customer_id tussen 1 en 10 opnieuw selecteren, om zeker te zijn dat er niets is veranderd.
Hoe bereid je het script voor?
Deze oefening maakt deel uit van de cursus
Transacties en foutafhandeling in SQL Server
Oefeninstructies
- Stel het juiste isolatieniveau in om phantom reads te voorkomen.
- Start een transactie.
- Selecteer de klanten die je wilt vergrendelen.
- Commit de transactie.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
-- 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
___ ___