Evite phantom reads apenas em algumas linhas
Você precisa analisar alguns dados dos clientes do seu banco com customer_id entre 1 e 10. Você quer bloquear apenas as linhas da tabela customers cujo customer_id esteja entre 1 e 10. Assim, você garante que ninguém poderá alterar essas linhas e permite que outras transações trabalhem com o restante da tabela.
Você precisa selecionar os clientes e executar algumas operações matemáticas novamente. (Não vamos focar nessas operações neste exercício.) Depois disso, você quer selecionar novamente os clientes com customer_id entre 1 e 10, garantindo que nada mudou.
Como você pode preparar o script?
Este exercício faz parte do curso
Transações e tratamento de erros no SQL Server
Instruções do exercício
- Defina o nível de isolamento apropriado para evitar phantom reads.
- Inicie uma transação.
- Selecione os clientes que você deseja bloquear.
- Faça o commit da transação.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
-- 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
___ ___