ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Archivo Jflex


Enviado por   •  21 de Noviembre de 2013  •  359 Palabras (2 Páginas)  •  265 Visitas

Página 1 de 2

¿Porque usamos transacciones?

Bueno aquí la cosa parece simple verdad, básicamente usamos transacciones para poder asegurar integridad de una operación, si por ejemplo necesitamos guardar una factura y esta se compone de Cabecera y Detalle no se debería guardar si hubo algún error en el detalle.

También podríamos mencionar otros ejemplos, donde se necesitan hacer mas de una operación y de fallar alguna no aplicar nada.

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

Las primeras 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'

Aquí se ejecutara el delete para todos los clientes que cumplan la condición de Argentina, si hay un error al intentar borrar un cliente se hará un rollback y no se borrara ninguno, esto se debe a que el delete al igual que el insert y update internamente arman una transacción.

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

...

Descargar como (para miembros actualizados)  txt (2.2 Kb)  
Leer 1 página más »
Disponible sólo en Clubensayos.com