Está en la página 1de 12

INSTITUTO TECNOLÓGICO

“MARCELO QUIROGA SANTA CRUZ”

Área: BASE DE DATOS II

Tema N° 6_ TRIGGERS

Docente : Lic. Rosalía Apaza Copa


TRIGGER 
Un TRIGGER, también conocido como disparador, es
una especie de script de programación SQL para base de
datos. 
Los TRIGGER son procedimientos que se ejecutarán
según nuestras indicaciones cuando se realicen
operaciones sobre la información de la base de datos.
Estas operaciones pueden ser de actualización (UPDATE),
inserción (INSERT) y borrado (DELETE).
Los TRIGGER además pueden modificar la
información de la base de datos e incluso detener la
ejecución de consultas erróneas. 
Ejemplo 1
Crear la siguiente base de datos
NEGOCIO
Crear las siguientes tablas
PERSONA INGRESOS
Este trigger mandará este mensaje cada vez que
se inserte un registro en la tabla PERSONA.

CREATE TRIGGER insertar_datos


on persona
for insert
as
print 'Hubo una insercion en la tabla persona‘
Lena con estos registro a la tabla persona y
observa que cada vez que lo haces el trigger se
activará.
Ahora haremos un trigger para que registre
quien ingresa los datos a la tabla PERSONA cada
vez que se inserta un registro.
CREATE TRIGGER registra_inserta
on persona
for insert
as
begin
insert into INGRESOS(codigo,fecha,obs)
select codigo,getdate(),‘Ingreso un registro'
from inserted
end
Ahora ingresa otro registro:
insert into persona values(‘xx',‘Juan',40)
Note que además de realizar la inserción,
mostró un mensaje o una alerta de que se
insertó un registro.
Para comprobarlo realiza una selección de la
tabla INGRESOS
Ahora ingresa un registro nuevamente:
insert into persona values(‘y,‘andrea',21)
Ahora modificaremos (ALTERAR)el trigger
cambiando el mensaje :
ALTER TRIGGER registra_inserta
on persona
for insert
as
begin
insert into ingresos(codigo,fecha,obs)
select codigo,getdate(),‘Se inserto un registro'
from inserted
end
Ahora ingresa otro registro:

insert into persona values(‘h',‘hugo', 20)

Note que además de realizar la inserción,


mostró un mensaje o una alerta de que se
Insertó un registro.
Realiza un select de las 2 tablas y verifica
los registros.
Para que el usuario no note que se están
registrando las acciones que realiza podemos
insertar el siguiente código:

ALTER trigger registra_inserta


on persona
for insert
As
Begin
set nocount on --evita que el usuario note el registro en los INGRESOS
insert into ingresos(codigo,fecha,obs)
select codigo,getdate(),'Se inserto un registro'
from inserted
end
Ahora ingresa otro registro:
insert into persona values(‘h',’hiena',220)

Podemos DESACTIVAR  un Trigger


DISABLE TRIGGER insertar_datos ON persona

Podemos ACTIVAR  un Trigger de la tabla


 ENABLE TRIGGER insertar_datos ON persona
ACTIVIDAD PARA HOY
1 DE JUNIO
1. Realiza un procedimiento almacenado con dos tablas de
tu proyecto.
2. Realiza un trigger para una tabla de tu proyecto,
además actívalo y desactívalo

También podría gustarte