Disparadores

3,184 views

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,184
On SlideShare
0
From Embeds
0
Number of Embeds
243
Actions
Shares
0
Downloads
92
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Disparadores

  1. 1. Disparadores<br />Rafael Quintana<br />Luz Elena Arizpe<br />Miriam Meza <br />
  2. 2. Mysqlhttp://dev.mysql.com/doc/refman/5.0/es/using-triggers.html<br />
  3. 3. 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. <br />
  4. 4. ¿Usos?<br /><ul><li> 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.
  5. 5. Además, pueden generar valores de columnas, previene errores de datos, sincroniza tablas, modifica valores de una vista, etc.
  6. 6. Permite implementar programas basados en paradigma lógico (sistemas expertos, deducción).</li></li></ul><li>Para crear o eliminar un disparador, se emplean las sentencias <br />CREATE TRIGGER<br /> y<br /> DROP TRIGGER. <br />
  7. 7. Sintaxis de CREATE TRIGGER<br />CREATE TRIGGER nombre_dispmomento_dispevento_disp<br />ON nombre_tabla FOR EACH ROW sentencia_disp<br />
  8. 8. DROP TRIGGER [nombre_esquema.]nombre_disp<br />Elimina un disparador. El nombre de<br />esquema es opcional. <br />Si el esquema se omite, el disparador <br />se elimina en el esquema actual<br />Sintaxis de DROP TRIGGER<br />
  9. 9. 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. <br />
  10. 10. Este es un ejemplo sencillo que asocia un disparador con una tabla para cuando reciba sentencias INSERT.<br />Actúa como un acumulador que suma los valores insertados en una de las columnas de la tabla. <br />
  11. 11. La siguiente sentencia crea la tabla y un disparador asociado a ella: <br />
  12. 12. DISPARADORES<br />Triggers<br />SQL Server<br />
  13. 13. Es un tipo de procedimiento almacenado que se ejecuta cuando se intenta modificar los datos de una tabla (o vista).<br />Se definen para una tabla (o vista) específica.<br />Se crean para conservar la integridad referencial y la coherencia entre los datos entre distintas tablas.<br />
  14. 14. INSERTUPDATE DELETE<br />createtriggerNOMBREDISPARADOR<br />on NOMBRETABLA<br />for EVENTO<br />as SENTENCIAS<br />
  15. 15. Las siguientes instrucciones no están permitidas en un desencadenador: <br /><ul><li>createdatabase
  16. 16. alter database
  17. 17. dropdatabase
  18. 18. load database
  19. 19. restoredatabase
  20. 20. load log
  21. 21. reconfigure
  22. 22. restore log
  23. 23. disk init
  24. 24. disk resize</li></li></ul><li>Como ejemplo crearemos un Trigger que avise al webmaster con un mail cuando un usuario se da de alta en nuestro web.<br />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. <br />AlterTriggerTrigger_Aviso_al_WebmasterOndbo.pr_usuariosForInsertAs<br />// Declaramos las variables del mensaje y del ID del nuevo usuarioDeclare @Mensaje varchar(200)Declare @ID numeric<br />// Obtenemos el id del usuario recien insertadoSelect @ID = (SelectIDUsuarioFromInserted )Select @Mensaje = ‘Nuevo Usuarios en el web : ‘ + Convert(varchar(10), @ID)<br />Execmaster.dbo.xp_sendmail@recipients = ‘webmaster@dominio.com’, @subject = ‘Nuevo usuario’,@message = @Mensaje<br />

×