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

Transacciones Base De Datos


Enviado por   •  25 de Abril de 2013  •  672 Palabras (3 Páginas)  •  600 Visitas

Página 1 de 3

I. Primera Parte: Transacciones Explicitas e Implícitas.

a) Mencionen un ejemplo básico de transacción explicita usando Transact-SQL.

BEGIN TRANSACTION T1

INSERT INTO ALUMNO(ALU_RUT,COM_CORREL,ALU_NOMBRES,ALU_PATERNO,ALU_MATERNO,ALU_FONO,CAR_CODIGO,ALU_SITUACION)VALUES ('77777000-K',77,'ATON','AHSGSA','sbjhash','50087751','29027','V')

COMMITTRANSACTION;

b) Mencionen un ejemplo básico de transacción implícita usando Transact-SQL.

UPDATEALUMNO

SETALU_NOMBRES='ASDFG'

WHEREALU_NOMBRES='ATON';

c) ¿Cuáles son las principales diferencias entre ambas?

En una transacción implícita se inicia automáticamente una nueva transacción cuando se ejecuta una instrucción que realiza modificaciones en los datos (ósea, no debemos indicarle a SQL que hacemos una transacción pero el lo genera), y finalizan cuando se inicia una nueva transacción en la misma sesión.

En cambio en las explicitas hay que indicar cuando se inician (BEGIN TRANSACTION) y cuando finalizan (COMMIT, ROLLBACK), y pueden albergar un conjunto de instrucciones dentro de la misma transacción.

d) Desactive el modo de transacciones implícitas usando Transact-SQL.

SET IMPLICIT_TRANSACTIONS OFF;

GO

II. Segunda Parte: Transacciones Explicitas

a) Generen una transacción explicita que cumpla los siguiente requisitos:

i. Un alumno inscribe una asignatura (tablas: ALUMNO, INSCRIBE, ASIGNATURA)

BEGIN TRANSACTION // Transaccion Activa

INSERT INTO INSCRIBE VALUES(13,'10484058-4','220007',4,2012);

//En el insert pasa a parcialmente Confirmada

COMMIT TRANSACTION;// Transaccion confirmada

ii. Si la situación del alumno es N (no vigente, campo ALU_SITUACION tabla ALUMNO) la transacción se debe abortar y mostrar un mensaje de error al usuario.

**Comentario** El script enviado la situacion del alumno trae 2 variables F Y V, asi que considere a V como valida y F como no valida. Ya que en etse enunciado habia una N.

BEGIN TRANSACTION // Transaccion Activa

DECLARE @SIT VARCHAR(1);

SELECT @SIT = ALU_SITUACION FROM ALUMNO WHERE ALU_RUT = '57104859-4';

IF @SIT = 'F'

BEGIN

PRINT 'ERROR ALUMNO CON SITUACION NO VALIDA';

ROLLBACK TRANSACTION; // Transaccion Abortada

END

ELSE

BEGIN

INSERT INTO INSCRIBE VALUES(14,'57104859-4','220033',4,2012);

// En el insert pasa a Parcialmente confirmada

COMMIT TRANSACTION; // Transaccion Confirmada

END

iii. Si las situación del alumno es V(vigente, campo ALU_SITUACION tabla ALUMNO), la transacción se compromete y se muestra mensaje al usuario del éxito de la misma.

BEGIN TRANSACTION // transaccion iniciada

DECLARE @SIT VARCHAR(1);

SELECT @SIT = ALU_SITUACION FROM ALUMNO WHERE ALU_RUT = '58588558-4';

IF @SIT = 'V'

BEGIN

PRINT 'Su Inscripcion termino con exito';

INSERT INTO INSCRIBE VALUES(18,'58588558-4','220037',4,2012);

// Transaccion parcialmente

...

Descargar como (para miembros actualizados)  txt (5.2 Kb)  
Leer 2 páginas más »
Disponible sólo en Clubensayos.com