Está en la página 1de 5

Instituto de

Estudios
Superiores
Nombre de la Actividad Laboratorio Unidad V: Transacciones y concurrencia en SQL Server

Objetivo de aprendizaje 1. Verificar la comprensión de la sintaxis básica para crear y utilizar


transacciones explícitas
2. Analizar las posibles situaciones o conflictos durante la concurrencia
provocados por instrucciones inapropiadas
Metodología 1. Realizar cada una de las actividades planteadass

Fecha de entrega 16 de Noviembre de 2022

Aplicaciones y/o SQL Server 2019+, SQL Server Management Studio


herramientas
Lecturas sugeridas Material proporcionado por el docente

Lecturas
complementarias

Criterios de evaluación Asertividad y consistencia en la respuesta a cada ítem


Retroalimentación a la participación de sus compañeros

Guía elaborada por: Ing. Gabriel Ignacio Chávez Toruño


Formato Recopilado por MSc. Hazzely Orozco Miranda y retomado de la UOL
Instituto de
Estudios
Superiores
Parte I
1. Crea una BD llamada BDTr_NumCarnet y en ella una Tabla llamada
Productos.

if object_id('Productos') is not null


drop table empleados;

create table Productos(


Id int IDENTITY (1,1) Primary Key,
Productos nvarchar (25),
Existencia int,
CostoUnitario decimal(6,2)
);

2. Inserta los siguientes registros:

3. Crea un nuevo usuario para esta base de datos


4. Ejecuta el siguiente código de T-SQL

Begin Transaction
update Productos
set Existencia+=1;
where id=1
Commit

¿Qué es lo que realiza esta instrucción?

Guía elaborada por: Ing. Gabriel Ignacio Chávez Toruño


Formato Recopilado por MSc. Hazzely Orozco Miranda y retomado de la UOL
Instituto de
Estudios
Superiores
5. Ejecuta ahora el siguiente código

Begin Transaction
update Productos
set Existencia+=1;
where id=1

6. Abre otra instancia de SQL Server Management Studio e inicia sesión


como el usuario que acabas de crear u otro distinto al de la sesión
activa.
a. Coloca ambas ventanas lado a lado
b. En sesión abierta recientemente, escribe un query para listar
todos los registros de la tabla Productos. ¿Qué sucede?¿Por
qué?
7. Regresa a la primera instancia abierta, escribe una instrucción
COMMIT y ejecuta solamente esa instrucción. ¿Qué sucede en la otra
sesión?
Parte II
1. Necesitaremos la BD AdventureWorks más reciente
2. Crea una BD llamada BDTr2_NumCarnet
3. En la BD BDTr2_NumCarnet crea las tablas Invoices y InvoiceDetails.
basadas en las tablas [Sales].[SalesOrderHeader] y [Sales].
[SalesOrderDetail] de la base de datos AdventureWorks

La ventana MS SQL Server que tienes activa será el Usuario A


4. El Usuario A ejecutará la siguiente instrucción:

Guía elaborada por: Ing. Gabriel Ignacio Chávez Toruño


Formato Recopilado por MSc. Hazzely Orozco Miranda y retomado de la UOL
Instituto de
Estudios
Superiores

Puedes observar que la transacción aún está abierta (por lo que no se revierte ni
se confirma) mediante la siguiente consulta

SELECT * FROM sys.sysprocesses WHERE open_tran = 1

5. Ejecute la siguiente instrucción en otra sesión la que desempeñará el


papel de Usuario B

6. Ejecuta la siguiente declaración en la primera sesión (Usuario A)


select * from dbo.InvoiceDetails;

Guía elaborada por: Ing. Gabriel Ignacio Chávez Toruño


Formato Recopilado por MSc. Hazzely Orozco Miranda y retomado de la UOL
Instituto de
Estudios
Superiores
7. Espera unos segundos o minutos. ¿Qué significa el código de error
1205? ¿Qué ha sucedido?¿Por qué?

Video de Resumen:
Comprendiendo las Transacciones, Bloqueos y Niveles de Aislamiento - YouTube

Guía elaborada por: Ing. Gabriel Ignacio Chávez Toruño


Formato Recopilado por MSc. Hazzely Orozco Miranda y retomado de la UOL

También podría gustarte