Zapobieganie odczytom fantomowym tylko dla wybranych wierszy
Chcesz przeanalizować dane klientów banku, których customer_id mieści się w zakresie od 1 do 10. Zależy ci na zablokowaniu wyłącznie tych wierszy tabeli customers, których customer_id należy do tego zakresu. Dzięki temu masz pewność, że nikt nie zmieni tych wierszy, a pozostała część tabeli będzie dostępna dla innych transakcji.
Należy wybrać tych klientów i ponownie wykonać pewne operacje matematyczne. (Nie będziemy się skupiać na tych operacjach w tym ćwiczeniu.) Następnie ponownie pobierz klientów z customer_id w zakresie od 1 do 10, aby upewnić się, że nic się nie zmieniło.
Jak przygotować taki skrypt?
To ćwiczenie jest częścią kursu
Transakcje i obsługa błędów w SQL Server
Instrukcje do ćwiczenia
- Ustaw odpowiedni poziom izolacji, aby zapobiec odczytom fantomowym.
- Rozpocznij transakcję.
- Wybierz klientów, których chcesz zablokować.
- Zatwierdź transakcję.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
-- 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
___ ___