Los Triggers
Los Triggers
- son PA especiales q se invocan automáticamente cada vez que se modifican datos de una tabla (cuando se
inserta, actualiza o elimina - > INSERT , UPDATE ,DELETE)
- Permiten la consistencia de la base de datos (Integridad referencial)
1. CREACION DE UN TRIGGER
Sintaxis
OBSERVACION
Ejemplo01. Este Trigger no permite ingresar una Ejemplo02. Este Trigger no permite modificar el
edad negativa a la tabla alumnos código de un alumno
use prueba
use prueba if exists(select name,type from sysobjects
if exists(select name,type from sysobjects where name='tr_ActualizaCodigo'
where name='tr_EdadNegativa' and type='TR')
and type='TR') drop trigger tr_ActualizaCodigo
drop trigger tr_EdadNegativa go
go create trigger tr_ActualizaCodigo
create trigger tr_EdadNegativa on alumnos
on alumnos for update
for insert as
as if update(idalumno)
if (select edad from inserted) < 0 begin
begin print 'Acceso denegado’
print 'edad negativa' rollback
rollback end
end go
go --probando el trigger… hacemos una
actualizacion
update alumnos set
--probando el trigger… hacemos una insercion idalumno = 500
exec sp_insertaalumno 100,'luis','mamani',20 where idalumno = 100
Ejemplo03. Este Trigger que comprueba si al columna apellidos ha sido afectada por una instrucción Insert
use prueba
if exists(select name,type from sysobjects
where name='tr_CompruebaColumnaApe'
and type='TR')
drop trigger CompruebaColumnaApe
go
create trigger CompruebaColumnaApe
on alumnos
for insert
as
if update(apellidos)
begin
print 'la columna apellidos a cambiado'
print 'Se realizo una insercion'
end
go
--probando el trigger… hacemos una insercion
insert into alumnos(idalumno,apellidos,edad)
values(200,'valdez',9)
Procedimientos
Sp_depends nombreTabla -> triggers que dependen de la tabla
Sp_Helptext nombreTrigger ->Sentencias que definieron el trigger
Sp_HelpTrigger nombreTabla ->trigger definido para la tabla
2. MODIFICACION DE UN TRIGGER
Sintaxis:
3. ELIMINACION DE UN TRIGGER
Sintaxis: