Sunteți pe pagina 1din 10

UNIVERSIDAD TECNOLÓGICA DE PANAMÁ

FACULTAD DE INGENIERÍA DE SISTEMAS COMPUTACIONALES


Laboratorio # 6

Facilitador(a): Cristian Pinzón Asignatura: Base de Datos II (0857)


Estudiante: Edgar Mojica Fecha: 28/10/2019 Grupo: 4IL131

A. TÍTULO DE LA EXPERIENCIA
Programando: Disparadores (Triggers)

B. TEMAS:
• Tema #8: Disparadores

C. OBJETIVO(S):
• Estudiar los Disparadores en Lenguaje SQL y su aplicación en la programación

Problemas Resueltos
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Problema Resuelto #1. Explique qué hace el siguiente código del Disparadores.
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

--Creación de la Tabla a Eliminar


CREATE TABLE TB_HORARIO
(
Cod_Horario int not null primary key,
Descripcion_horario varchar (50) not null,
)
GO
--Creación del Trigger
CREATE TRIGGER TR_SEGURIDAD_BD
ON DATABASE FOR DROP_TABLE, ALTER_TABLE

AS
BEGIN
RAISERROR ('No está permitido borrar ni modificar tablas!',
16, 1)
ROLLBACK TRANSACTION
END
GO
--Eliminando el Disparador
DROP TABLE TB_HORARIO
GO
UNIVERSIDAD TECNOLÓGICA DE PANAMÁ
FACULTAD DE INGENIERÍA DE SISTEMAS COMPUTACIONALES
Laboratorio # 6

Se usa disparador dirigido a la base de datos que tiene como objetivo mostrar un mensaje cada
vez que se intente eliminar o modificar una tabla.
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Problema Resuelto #2. Explique qué hace el siguiente código del Disparadores.
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

CREATE TRIGGER TR_Insertar_Nuevo_Registro_Facultad


ON TB_FACULTAD
FOR INSERT
AS
PRINT 'Se ha adicionado nuevo Registro en la Tabla Facultad.'
GO

--Probando el Trigger. Insertando nuevo registro.


INSERT INTO TB_FACULTAD (Cod_Facultad, Nombre_Facultad)
VALUES (115, 'Facultad de Ingeniería en Sistemas Computacionales')
GO
UNIVERSIDAD TECNOLÓGICA DE PANAMÁ
FACULTAD DE INGENIERÍA DE SISTEMAS COMPUTACIONALES
Laboratorio # 6

Como en el caso anterior el trigger está dirigido a mostrar un mensaje, con la diferencia que en
este caso el trigger está dirigido a la tabla TB_Facultad y dicho mensaje se muestra cada vez que
se inserta un nuevo registro.
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Problema Resuelto #3. Explique qué hace el siguiente código del Disparadores.
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

CREATE TABLE DB_INSERCION_REGISTRO


(
IdRegistro INT NOT NULL IDENTITY(1,1) PRIMARY KEY,
Fecha_Hora DATETIME NOT NULL DEFAULT (GETDATE()),
Usuario VARCHAR(60) NOT NULL DEFAULT (USER_NAME()),
Accion VARCHAR(50) NOT NULL,
Descripcion VARCHAR(500) NOT NULL
)
GO

INSERT INTO DB_INSERCION_REGISTRO(Accion, Descripcion)


VALUES('Prueba de Almacenamiento', 'Insertar')
GO

SELECT * FROM DB_INSERCION_REGISTRO


GO
UNIVERSIDAD TECNOLÓGICA DE PANAMÁ
FACULTAD DE INGENIERÍA DE SISTEMAS COMPUTACIONALES
Laboratorio # 6

Se crea una tabla que guarda la actividad realizada de tal forma que queda registrado la actividad
que se realizó, la fecha en se momento (obtenida del sistema), el usuario, una descripción.
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Problema Resuelto #4. Explique qué hace el siguiente código del Disparadores.
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-- Creación de un desencadenador AFTER INSERT.
CREATE TRIGGER Tr_Insercion_Facultad
ON TB_FACULTAD
AFTER INSERT
AS
BEGIN
DECLARE @nombre_facultad VARCHAR(60)
SELECT @nombre_facultad = TB_FACULTAD.Nombre_Facultad
FROM INSERTED TB_FACULTAD
INSERT INTO DB_INSERCION_REGISTRO (Accion,
Descripcion)
VALUES ('Inserción de datos',
'Se ha insertado un nuevo registro en
la tabla facultad con el nombre: ' +
@nombre_facultad)
END
GO

-- Insertando nuevos registros


UNIVERSIDAD TECNOLÓGICA DE PANAMÁ
FACULTAD DE INGENIERÍA DE SISTEMAS COMPUTACIONALES
Laboratorio # 6
INSERT INTO TB_FACULTAD (Cod_Facultad, Nombre_Facultad)
VALUES (145, 'Facultad de Astronomia')

Se crea un disparador a la tabla TB_Facultad que muestra un mensaje que se ha adicionado un


nuevo registro y aparte de ello registrar la actividad en la tabla creada en el caso anterior, el
trigger realiza su función cada vez que se inserta un registro a la tabla TB_Facultad.

Problemas Propuestos: B.D. DB_EmpresaXYZ


-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Problema #1. Resuelva el problema propuesto en Lenguaje SQL
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Escriba el código SQL de un disparador que permita bloquear la


eliminación de objetos de la Base de Datos DB_EmpresaXYZ, deshaciendo la
transacción.
UNIVERSIDAD TECNOLÓGICA DE PANAMÁ
FACULTAD DE INGENIERÍA DE SISTEMAS COMPUTACIONALES
Laboratorio # 6

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Problema #2. Resuelva el problema propuesto en Lenguaje SQL
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Escriba el código SQL de un disparador que envié un mensaje


inmediatamente cuando se realiza el registro de un nuevo proveedor,
imprimiendo el mensaje: “Se ha adicionado nuevo Registro en la Tabla
PROVEEDOR”
UNIVERSIDAD TECNOLÓGICA DE PANAMÁ
FACULTAD DE INGENIERÍA DE SISTEMAS COMPUTACIONALES
Laboratorio # 6

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Problema #3. Resuelva el problema propuesto en Lenguaje SQL


-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Escriba el código SQL de un disparador que realicé un log en una tabla,


creada previamente con los campos: identificador de registro (incremento
automático), fecha/hora, usuario activo, acción realizada (inserción)
y descripción con el dato del nuevo registro, una vez se realicé el
registro de un nuevo producto.
UNIVERSIDAD TECNOLÓGICA DE PANAMÁ
FACULTAD DE INGENIERÍA DE SISTEMAS COMPUTACIONALES
Laboratorio # 6
Problemas Propuestos: B.D. Academica
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Problema #1. Resuelva el problema propuesto en Lenguaje SQL
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Escriba el código SQL que permita darle mantenimiento a la base de datos.


A través de un procedimiento almacenado se debe eliminar un curso de la
base de datos y al mismo tiempo, a través de un evento de un disparador,
eliminar las calificaciones correspondientes de ese curso. Se debe pasar
como parámetro de entrada, del procedimiento almacenado, el código del
curso a eliminar.

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Problema #2. Resuelva el problema propuesto en Lenguaje SQL
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Escriba el código de un Disparador que permita una vez actualizado el
nombre de la carrera, actualizar todos los correos de los estudiantes
afiliados a la carrera actualizada. El Correo Electrónico debe quedar
con el nuevo nombre de la carrera más el servidor '@utp.ac.pa'.
UNIVERSIDAD TECNOLÓGICA DE PANAMÁ
FACULTAD DE INGENIERÍA DE SISTEMAS COMPUTACIONALES
Laboratorio # 6

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Problema #3. Resuelva el problema propuesto en Lenguaje SQL
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Escriba el código de un Disparador que permita actualizar todos los
registros de un curso para un docente en un año y semestre concreto
disparando el evento desde un procedimiento almacenado. Se deben pasar
como parámetros de entrada del procedimiento almacenado: El año a
corregir, el nuevo año, el código del docente y el semestre.
UNIVERSIDAD TECNOLÓGICA DE PANAMÁ
FACULTAD DE INGENIERÍA DE SISTEMAS COMPUTACIONALES
Laboratorio # 6

D. RESULTADOS:
• Conocimiento sobre la programación de Procedimientos Almacenados en el desarrollo de
aplicaciones de software con Transact SQL.

E. CONSIDERACIONES FINALES:
Opinión del estudiante sobre el logro del objetivo y el desarrollo de la experiencia.

Este laboratorio ayudo para lograr entender mejor el concepto de triggers o


disparadores y las distintas formas de aplicarlo a tablas de la base de datos ya que
es de suma importancia hacerlo y comprenderlo ya que te ayuda a tener el control
completo de tu base de datos.

S-ar putea să vă placă și