Usando el nivel de aislamiento READ UNCOMMITTED
Una nueva clienta visita tu banco para abrir una cuenta. Inserta sus datos en tu sistema, lo que hace que empiece a ejecutarse un script como este:
BEGIN TRAN
INSERT INTO customers (first_name, last_name, email, phone)
VALUES ('Ann', 'Ros', '[email protected]', '555555555')
DECLARE @cust_id INT = scope_identity()
INSERT INTO accounts (account_number, customer_id, current_balance)
VALUES ('55555555555010121212', @cust_id, 150)
COMMIT TRAN
En ese momento, tu compañero de marketing empieza a enviar correos electrónicos a todos los clientes. ¡Va a haber un sorteo de un coche! El script que ejecuta obtiene los datos de todos los clientes, incluida la última clienta que acabas de insertar. Este script empieza a ejecutarse después de la primera inserción pero antes del COMMIT TRAN.
¿Cómo es posible?
Este ejercicio forma parte del curso
Transacciones y control de errores en SQL Server
Instrucciones del ejercicio
- Establece el nivel de aislamiento
READ UNCOMMITTED. - Selecciona
first_name,last_name,emailyphonede la tablacustomers.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
-- Set the appropriate isolation level
___ TRANSACTION ___ LEVEL ___ ___
-- Select first_name, last_name, email and phone
SELECT
___,
___,
___,
___
FROM customers;