Evitar lecturas fantasma solo en algunas filas
Necesitas analizar algunos datos de tus clientes del banco con customer_id entre 1 y 10. Solo quieres bloquear las filas de la tabla customers con customer_id entre 1 y 10. Con esto te aseguras de que nadie podrá cambiar esas filas y permites que otras transacciones trabajen con el resto de la tabla.
Tienes que seleccionar esos clientes y ejecutar de nuevo algunas operaciones matemáticas. (En este ejercicio no nos centraremos en esas operaciones). Después, quieres volver a seleccionar a los clientes con customer_id entre 1 y 10 para asegurarte de que nada ha cambiado.
¿Cómo prepararías el script?
Este ejercicio forma parte del curso
Transacciones y control de errores en SQL Server
Instrucciones del ejercicio
- Establece el nivel de aislamiento adecuado para evitar lecturas fantasma.
- Inicia una transacción.
- Selecciona los clientes que quieres bloquear.
- Haz COMMIT de la transacción.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
-- 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
___ ___