Impedire le phantom reads solo su alcune righe
Devi analizzare alcuni dati dei clienti della tua banca con customer_id compreso tra 1 e 10. Vuoi bloccare solo le righe della tabella customers con customer_id tra 1 e 10. In questo modo, garantisci che nessuno possa modificare queste righe e permetti alle altre transazioni di lavorare sul resto della tabella.
Devi selezionare i clienti ed eseguire di nuovo alcune operazioni matematiche. (In questo esercizio non ci concentreremo su queste operazioni.) Dopodiché, vuoi selezionare di nuovo i clienti con customer_id tra 1 e 10, assicurandoti che nulla sia cambiato.
Come puoi preparare lo script?
Questo esercizio fa parte del corso
Transazioni e gestione degli errori in SQL Server
Istruzioni dell'esercizio
- Imposta il livello di isolamento appropriato per impedire le phantom reads.
- Avvia una transazione.
- Seleziona i clienti che vuoi bloccare.
- Esegui il COMMIT della transazione.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
-- 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
___ ___