You are on page 1of 20

UNIVERSIDAD AUTONOMA GABRIEL RENE MORENO

FACULTAD DE CIENCIAS DE LA COMPUTACION


Carrera de Ingeniera Informtica

TEMA 2

Trigger

Elaborado por: ING. Ubaldo Prez Ferreira.

Santa Cruz de la Sierra Bolivia


Definicin de Trigger
Un Trigger es un procedimiento almacenado asociado
con una tabla, el cual se ejecuta automticamente
cuando se modifica un dato de esa tabla
Un trigger se puede definir para: insert, update, o delete
o cualquier combinacin de ellos

update hsumi set itot=


update hsumi set itot=
update hsumi set itot=

update hsumi set itot=


update hsumi set itot=
update hsumi set itot=
PA vs TRIGGER

La diferencia con los PA del sistema es que los


triggers:
- No pueden ser invocados directamente; al
intentar modificar los datos de una tabla para la
que se ha definido un disparador, el disparador se
ejecuta automticamente.
- No reciben y retornan parmetros.
- Son apropiados para mantener la integridad de
los datos, no para obtener resultados de
consultas.
RESTRICCIONES (Check) vs TRIGGER

Las restricciones se comprueban ANTES Los triggers se ejecutan DESPUES de la


de la ejecucin de una instruccin ejecucin de una instruccin "insert",
"insert", "update" o "delete". "update" o "delete" en la tabla en la que
fueron definidos.
Las restricciones se comprueban primero,
si se infringe alguna restriccin, el Los triggers puden hacer referencia a los
desencadenador no llega a ejecutarse. atributos de otras tablas.
RESTRICCIONES (Check) vs TRIGGER

Ventajas de las restricciones:


Las restricciones (y reglas) son ms rpidas que los
triggers
Las restricciones no requieren codificacin adicional
Es mejor para chequear datos antes de ingresarlos a la
base de datos
Ventajas de los triggers:
Muy flexible
Los triggers pueden hacer cualquier cosa que se pueda
codificar
Mejor para las reglas complejas del negocio que no se
pueden expresar como restricciones referenciales tales
como actualizaciones o borrados en cascada
Aplicaciones Tpicas de Triggers

Hacer modificaciones en cascada sobre tablas


relacionadas
Deshacer cambios que violan la integridad de los
datos
Forzar restricciones que son muy complejas para
reglas y restricciones
Mantener datos duplicados
Mantener columnas con datos derivados
Hacer ajustes de registros
Activacin de un Trigger
Cuando se modifica un dato en una tabla que
tiene declarado un Trigger para esa sentencia,
el Trigger se dispara
El trigger se dispara una vez, independientemente
del nmero de filas afectadas
El trigger se dispara aunque no hayan filas
afectadas
Insert
Modifica Delete
Update
Reglas para Triggers

Los Triggers pueden:


Declarar variables locales
Invocar procedimientos almacenados
Los Triggers no pueden:
Llamarse directamente
Usar parmetros
Definirse sobre tablas temporales o vistas
Crear objetos permanentes de base de datos
Las operaciones con registro mnimo (como select
into) no disparan los triggers
Crear y Borrar Triggers

Sintaxis :
create trigger nombre_trigger
on nombre_tabla
for {insert | update | delete} [, {insert | update |
delete} ...]
as
instrucciones

Sintaxis simplificada:
drop trigger nombre_trigger
Las tablas inserted y deleted
inserted y deleted son dos tablas que se crean
automticamente cada vez que se dispara un trigger
inserted almacena cualquier fila que se vaya a aadir a la tabla
deleted almacena cualquier fila que se vaya a borrar de la tabla
Borrados

La instruccion delete adiciona filas a la tabla


deleted
Inserciones
La instrucin insert adiciona filas a la tabla
inserted
Actualizaciones

La instruccin update adiciona filas en ambas


tablas
Reglas para las tablas inserted y deleted

Ambas tablas tienen las mismas columnas que la


tabla asociada al trigger
El trigger puede consultar datos de las dos tablas
Otros procesos no pueden consultar datos de las dos
tablas
El trigger no puede modificar datos en las dos
tablas
Cada anidamiento de triggers tiene sus propias
tablas inserted y deleted
Si un trigger modifica datos de su tabla asociada, esos
cambios no se reflejan en las tablas inserted and
deleted de ese trigger
Prctica de Laboratorio
Triggers - ejemplo
Crear dos tablas:
Triggers - ejemplo
Crear un trigger que despus de insertar en dsumi
actualice en la tabla hsumi.
Triggers - ejemplo
Crear un trigger que despus de eliminar de la tabla
dsumi actualice en la tabla hsumi.
Uso de la tabla deleted y inserted - ejemplo
Uso de la tabla deleted y inserted - ejemplo
Uso de la tabla deleted y inserted - ejemplo

You might also like