manejo de transaccones

Post on 14-Feb-2017

123 Views

Category:

Engineering

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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.

• 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'

• 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

¿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 

top related