ComeçarComece de graça

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

Ver curso

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
___ ___
Editar e executar o código