Laboratorio 0008: Aplicaciones con transacciones

publicado a la‎(s)‎ 14 ago. 2012 12:14 por Hernan Nina Hanco   [ actualizado el 4 jun. 2013 10:56 ]
I) OBJETIVOS
  • Utilizando un SGBD comercial u OpenSource escribir aplicaciones de Transacciones

II) MARCO CONCEPTUAL

Ver Guía de la Asignatura

III) PRÁCTICAS DE LABORATORIO

Trabajo con transacciones en SQL Server.

/*Trabajo con transacciones*/

-- Iniciar una Transaccion
BEGIN TRANSACTION

-- Iniciamos una tracsaccion de actualizacion
UPDATE HumanResources.Employee
SET Title = 'TestTitle'
WHERE EmployeeID = 150

-- Para verificar la modificacion realizamos una consulta

SELECT Title
FROM HumanResources.Employee
WHERE EmployeeID = 150

-- Debera mostrar la modificacion en el registro

----------------
-- Inicie una nueva consulta y luego escriba
---------------
SELECT Title
FROM HumanResources.Employee
WHERE EmployeeID = 150

----------------
-- Vuelva a la consulta anterior y revierta la transaccion
---------------

ROLLBACK TRANSACTION

-- Se revierte y la consulta realizada en la nueva ventana muestra que el dato del registro se ha modificado

Aplicaciones de la propiedad de aislamiento de transacciones en SQL Server.

Ejecutar en una conexión lo siguiente:
USE AdventureWorks
GO

-- Iniciar la transaccion ...
BEGIN TRAN

   -- Modificaciones en los datos ...
   UPDATE Production.Product
   SET Name = 'Adjustable Race 2009-Cusco'
   WHERE ProductID = 1

   -- Ver los datos cambiados ...
   SELECT * FROM Production.Product
   WHERE name LIKE 'A%'

-- Cancelar la transaccion ...
-- ROLLBACK TRAN

En otra conexión ejecuta lo siguiente, no debe culminar la transacción de la conexión anterior.
USE Adventureworks
GO
-------------------------------------------------------------------------------------------------------------
-- En la otra conexion ejecutamos este codigo mientras al transaccion anterior este abierta
-------------------------------------------------------------------------------------------------------------

-- SCRIPT #A.1
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SELECT * FROM Production.Product
WHERE name LIKE 'A%'

SET TRANSACTION ISOLATION LEVEL READ COMMITTED


-- SCRIPT #A.2
SELECT * FROM Production.Product WITH ( NOLOCK )
WHERE name LIKE 'A%'


-- SCRIPT #B
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
SELECT * FROM Production.Product
WHERE name LIKE 'A%'

Debe disponer de la base de datos ejemplo o demo de SQL Server Adeventureworks

III) TAREA
  1. Verifique que podemos crear un tercer aislamiento y comprobar como quedan los datos después de finalizar la transacción de la primera conexión. Ejecute instrucciones de Inserción, Modificación y Eliminado en las transacciones.
Comments