TRIGGERS DML
TRIGGERS DML
o
disparadores
BASE DE DATOS II
Lic. Rosa Irene López Loza
Introducción
Trigger DML
Trigger DDL
Trigger DML
TABLA
OPERACIONES
INSERTAR (INSERT)
ACTUALIZAR (UPDATE)
ELIMINAR (DELETE)
CARACTERÍSTICAS DE UN TRIGGER
INSTEAD OF
FOR o AFTER
Especifica que se ejecuta el trigger
AFTER especifica que el en vez de la instrucción SQL, por lo
desencadenador solo se activa que se suplantan las acciones de las
cuando todas las operaciones instrucciones desencadenadoras.
especificadas en la instrucción SQL
se han ejecutado correctamente INSTEAD OF no se puede especificar
para los desencadenadores DDL.
AFTER es el valor predeterminado
cuando solo se especifica FOR. Solo se puede definir un trigger
INSTEAD OF por cada instrucción
Los desencadenadores AFTER no se INSERT, UPDATE o DELETE en tablas o
pueden definir en las vistas. vistas.
Sintaxis
1
create view PacAtendidoMed
as
SELECT p.*, m.nombre, m.apPaterno, m.apMaterno
FROM pacientes p INNER JOIN atenciones a ON
p.idPac = a.idPac INNER JOIN medicos m ON m.id =
a.id
Go
Solución
2
Create trigger tr_InsertaPac
on PacAtendidoMed
instead of insert
as
insert into pacientes select idPac, nombrePac, apPaternoPac,
apMaternoPac, direccionPac, telefonoPac, fechaNacPac,
ciPac, nroSeguroPaciente, sexo, tipoSangrePac from inserted
Go
Para que se ejecute el trigger creado:
Tabla temporal
TABLA
INSERTED
INSERTAR
Ejemplo:
set nocount on
declare @codInter varchar(10)
select @codInter = idInternacion from inserted
insert into historial values (getdate(), @codInter,
‘Paciente Internado', system_user)
GO
Ejercicio