Disparadores

Post on 24-May-2015

1.689 views 1 download

Transcript of Disparadores

DisparadoresRafael QuintanaLuz Elena Arizpe

Miriam Meza

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

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.

¿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).

Para crear o eliminar un

disparador, se emplean las sentencias

CREATE TRIGGER y

DROP TRIGGER.

CREATE TRIGGER nombre_disp momento_disp evento_disp ON nombre_tabla FOR EACH ROW sentencia_disp

Sintaxis de CREATE TRIGGER

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

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.

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.

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

DISPARADORESTriggers

SQL Server

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.

INSERT UPDATE DELETE

create trigger NOMBREDISPARADORon NOMBRETABLAfor EVENTOas SENTENCIAS

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

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 = ‘webmaster@dominio.com’, @subject = ‘Nuevo usuario’,@message = @Mensaje