51191625 triggers 120806104714 phpapp01

Páginas: 9 (2017 palabras) Publicado: 1 de junio de 2015
Microsoft Sql Server
TRIGGERS (DESENCADENADORES, DISPARADORES)
Son procedimientos asociados a una tabla. Se activan cuando se produce una eliminación,
modificación o inserción en la tabla asociada.
Ejemplos de uso de un trigger
Si tenemos una tabla de clientes, y otra de informes, por ej. cada vez que se produzca una
baja en clientes, almacenamos el nombre y apellidos del cliente en informe paraposteriormente hacer una estadística con los clientes borrados.
Tenemos la tabla de nominas, cada vez que un usuario acceda a ella, el trigger se activa y
almacena su nombre en otra tabla.
Eliminación en Cascada
Vamos a ver un ejemplo de creación de un trigger para cuando borremos un departamento
se actualice la tabla empleados borrando todos aquellos cuyo departamento sea el borrado.
Entramos enel diseño de la tabla dept...

...y pulsamos el icono de desencadenadores.

Vemos que nos sale la pantalla
con la sintaxis del trigger
Create Trigger Nombre
On Tabla
For Delete /Insert /Update
As
Instrucciones
Como se ve en la sintaxis, le
indicamos que es lo que va a
hacer en el trigger detrás del
For.

danilo.rodriguez@fec.uni.edu.ni

1

Microsoft Sql Server
Ejemplo de Trigger para Delete
EnTabla en este caso como queremos borrar, obtendremos la información de la tabla
Deleted, que es una tabla de sistema donde se almacenan todos los datos borrados de todas
las tablas. Con lo que la instrucción quedaría así.

Create Trigger [Borrador]
on Dept
For Delete
As
delete from emp
From emp, deleted
where
emp.dept_no = deleted.dept_no

Con lo que si por ej. borramos el departamento 20 de latabla dept, este departamento se
almacenará en la tabla Deleted, una vez borrado, se desencadena el trigger, y borraría de la
tabla empleados, todos los empleados cuyo nº de departamento, coincida con el que se ha
borrado y almacenado en la tabla deleted. Si borrasemos 4 departamentos con una misma
orden, se activaría el trigger con cada departamento borrado.
Ejemplo de Trigger para Update
Como hemosvisto en el ejemplo anterior, para borrar existe la tabla de sistema deleted
donde almacena los registros borrados, al igual que para insertar almacena los registros
insertados en la tabla inserted, pero para modificar no existe ninguna tabla update, lo que
hace en realidad es insertar en la tabla deleted el registro antes de ser modificado y en la
tabla inserted el registro ya modificado, porqueentiende que se ha borrado un registro y se
ha insertado otro.
Con lo cuál para crear un trigger que se active con un update, trabajaremos con las tablas
deleted e inserted.
Ejemplo Update:

danilo.rodriguez@fec.uni.edu.ni

2

Microsoft Sql Server
Create Trigger [Modificar]
On Dept
For Update
As
Update emp
set
dept_no = inserted.dept_no
from emp,deleted,inserted
where
emp.dept_no =deleted.dept_no

Con lo que este ejemplo lo que haría es que cuando modificamos un registro en la tabla
dept, se activa el trigger, va a la tabla insert y busca los registros cuyo nº de depto. Coincida
con
Ejemplo de Trigger para Insert
En este ejemplo inserto un nuevo empleado y lo que hago es mostrar el empleado insertado
desde la tabla inserted.

Create Trigger
Insertar_Emp
On Emp
for Insert
As
Select * fromInserted

danilo.rodriguez@fec.uni.edu.ni

3

Microsoft Sql Server
Super Ejemplo
El siguiente ejemplo almacenará en una tabla que crearemos un registro con datos de cada
fila que borremos, modifiquemos o insertemos.
Este registro contendrá
Nº de empleado.
Usuario que realizó la consulta de acción.
Fecha de la consulta de acción.
Tipo de operación realizada.

1 Creamos la tabla

2 Creamos eltrigger de
borrado en la tabla de
empleados.

Create Trigger Borrador on emp
For Delete
As
Insert into Control (Emp_no, Usuario, Fecha, Operacion)
Select Emp_no,User_Name(), GetDate(),’Borrado’
From Deleted

danilo.rodriguez@fec.uni.edu.ni

4

Microsoft Sql Server
TRIGGERS O DESENCADENADORES
1) Crear un Trigger que borre en cascada sobre la tabla relacionada cuando borremos
una sala. Mostrar el...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • triggers
  • Triggers
  • TRIGGERS
  • Triggers
  • Triggers
  • Triggers
  • triggers
  • Triggers

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS