Disparadores

15
Disparadores Rafael Quintana Luz Elena Arizpe Miriam Meza

Transcript of Disparadores

Page 1: Disparadores

DisparadoresRafael QuintanaLuz Elena Arizpe

Miriam Meza

Page 2: Disparadores

Mysqlhttp://dev.mysql.com/doc/refman/5.0/es/using-triggers.html

Page 3: Disparadores

Un disparador es un objeto de base de datos con nombre que se asocia a una tabla, y se activa cuando ocurre un evento en particular para la tabla.

Page 4: Disparadores

¿Usos?

• Son usados para mejorar la administración de la Base de datos, sin necesidad de contar con que el usuario ejecute la sentencia de SQL.• Además, pueden generar valores de columnas, previene errores de datos, sincroniza tablas, modifica valores de una vista, etc.• Permite implementar programas basados en paradigma lógico (sistemas expertos, deducción).

Page 5: Disparadores

Para crear o eliminar un

disparador, se emplean las sentencias

CREATE TRIGGER y

DROP TRIGGER.

Page 6: Disparadores

CREATE TRIGGER nombre_disp momento_disp evento_disp ON nombre_tabla FOR EACH ROW sentencia_disp

Sintaxis de CREATE TRIGGER

Page 7: Disparadores

DROP TRIGGER [nombre_esquema.]nombre_disp

Elimina un disparador. El nombre deesquema es opcional. Si el esquema se omite, el disparador se elimina en el esquema actual

Sintaxis de DROP TRIGGER

Page 8: Disparadores

Un disparador se asocia con una tabla y se define para que se active al ocurrir una sentencia INSERT, DELETE, o UPDATE sobre dicha tabla.

Page 9: Disparadores

Este es un ejemplo sencillo que asocia un disparador con una tabla para cuando reciba sentencias INSERT.

Actúa como un acumulador que suma los valores insertados en una de las columnas de la tabla.

Page 10: Disparadores

La siguiente sentencia crea la tabla y un disparador asociado a ella:

Page 11: Disparadores

DISPARADORESTriggers

SQL Server

Page 12: Disparadores

Es un tipo de procedimiento almacenado que se ejecuta cuando se intenta modificar los datos de una tabla (o vista).

Se definen para una tabla (o vista) específica.

Se crean para conservar la integridad referencial y la coherencia entre los datos entre distintas tablas.

Page 13: Disparadores

INSERT UPDATE DELETE

create trigger NOMBREDISPARADORon NOMBRETABLAfor EVENTOas SENTENCIAS

Page 14: Disparadores

Las siguientes instrucciones no están permitidas en un desencadenador: - create database - alter database- drop database - load database - restore database- load log- reconfigure- restore log- disk init- disk resize

Page 15: Disparadores

Como ejemplo crearemos un Trigger que avise al webmaster con un mail cuando un usuario se da de alta en nuestro web.

El funcionamiento del trigger es muy sencillo, declaramos dos variables, una para el mensaje que se enviará en el mail y otra para obtener el ID del registro recién insertado y luego este ID lo concatenamos al mensaje para enviárselo al webmaster.

Alter Trigger Trigger_Aviso_al_WebmasterOn dbo.pr_usuariosFor InsertAs// Declaramos las variables del mensaje y del ID del nuevo usuarioDeclare @Mensaje varchar(200)Declare @ID numeric// Obtenemos el id del usuario recien insertadoSelect @ID = (Select IDUsuario From Inserted )Select @Mensaje = ‘Nuevo Usuarios en el web : ‘ + Convert(varchar(10), @ID)Exec master.dbo.xp_sendmail @recipients = ‘[email protected]’, @subject = ‘Nuevo usuario’,@message = @Mensaje