manejo de transaccones

5
MANEJO DE TRANSACCONES

Upload: eiysc

Post on 14-Feb-2017

122 views

Category:

Engineering


1 download

TRANSCRIPT

Page 1: Manejo de transaccones

MANEJO DE

TRANSACCONES

Page 2: Manejo de transaccones

•    Una transacción es un conjunto de operaciones Transact SQL que se ejecutan como un único bloque, es decir, si falla una operación Transact SQL fallan todas. Si una transacción tiene éxito, todas las modificaciones de los datos realizadas durante la transacción se confirman y se convierten en una parte permanente de la base de datos. Si una transacción encuentra errores y debe cancelarse o revertirse, se borran todas las modificaciones de los datos.

Page 3: Manejo de transaccones

• Tenemos dos tipos de transacciones en SQL Server, las implícitas y las explicitas.

• Las implícitas son aquellas que no debemos indicarle al SQL que hacemos una transacción pero el lo genera, por ejemplo como el siguiente caso.

• DELETE FROM CLIENTES WHERE PAIS = 'ARGENTINA'

Page 4: Manejo de transaccones

• Las transacciones explicitas son aquellas que nosotros indicamos con la sentencia Begin Transaction / Commit o Rollback Transaction.

• BEGIN TRANSACTION INSERT INTO EMPLEADOS (ID, NOMBRE) VALUES (1,'CONDUIT') DELETE FROM AUDITORIA WHERE EMPLEADO = 1 COMMIT TRAN

Page 5: Manejo de transaccones

¿Como funciona el Commit y Rollback?

• El commit es el que confirmara la transacción y el rollback es el que la deshará, pero aquí hay algunos detalles muy importantes en su comportamiento cuando usamos transacciones anidadas.

• Primero veamos un ejemplo simple• CREATE TABLE #T1 (ID INT, NOMBRE VARCHAR(50)) GO CREATE TABLE #T2 (ID INT, FECHA DATETIME NOT NULL) GO BEGIN TRY BEGIN TRAN INSERT INTO #T1 VALUES (1,'CONDUIT') INSERT INTO #T1 VALUES (1,GETDATE()) COMMIT TRAN END TRY BEGIN CATCH ROLLBACK TRAN SELECT @@ERROR END CATCH