Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Ejecutar trigger al cambiar dos tablas

Estas en el tema de Ejecutar trigger al cambiar dos tablas en el foro de SQL Server en Foros del Web. Hola estimados. Quiero realizar un trigger para mandar un mail y que este se ejecute cuando en una tabla se modifique un determinado campo, y ...
  #1 (permalink)  
Antiguo 22/06/2012, 11:10
 
Fecha de Ingreso: septiembre-2009
Mensajes: 38
Antigüedad: 14 años, 7 meses
Puntos: 0
Pregunta Ejecutar trigger al cambiar dos tablas

Hola estimados.
Quiero realizar un trigger para mandar un mail y que este se ejecute cuando en una tabla se modifique un determinado campo, y además cuando en otra tabla se inserte un nuevo registro.

Un saludo cordial.
  #2 (permalink)  
Antiguo 22/06/2012, 11:19
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Ejecutar trigger al cambiar dos tablas

quieres que se mande un mail cuando se modifique un dato "y" se inserte otro en tablas diferentes, ó,cuando se modifique un dato "o" se inserte otro en tablas diferentes???
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 22/06/2012, 11:37
 
Fecha de Ingreso: septiembre-2009
Mensajes: 38
Antigüedad: 14 años, 7 meses
Puntos: 0
Pregunta Respuesta: Ejecutar trigger al cambiar dos tablas

Gracias Libras por contestar. Necesito que se cumpla las dos condiciones, que se modifique un valor en una tabla y que se inserte un registro en otra tabla.
  #4 (permalink)  
Antiguo 22/06/2012, 12:02
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Ejecutar trigger al cambiar dos tablas

ahora el punto es como se hacen las 2 condiciones al mismo tiempo??? como tienes tu aplicacion o como piensas hacer que las 2 condiciones corran al mismo tiempo?? ya que si lo que quieres es que cuando se actualice un campo se inserte un registro ya esa es otra cosa :)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #5 (permalink)  
Antiguo 22/06/2012, 12:15
 
Fecha de Ingreso: septiembre-2009
Mensajes: 38
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Ejecutar trigger al cambiar dos tablas

El asunto es que tengo un proceso que modifica el valor de un campo de una tabla al cerrar la caja del día. Hay otro proceso para poner el tipo de cambio, que inserta un registro en otra tabla.
Lo que quiero es que se dispare un trigger al poner el tipo de cambio (insertar un registro en una tabla), siempre y cuando se haya hecho el cierre de caja (modificar el valor de un campo en otra tabla).

Saludos.
  #6 (permalink)  
Antiguo 22/06/2012, 12:25
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Ejecutar trigger al cambiar dos tablas

aaaa asi esta mas sencillo podrias usar una tabla que tendria un registro digamos una tabla llamada maitenance, cuando esta tabla tenga el valor de 1 entonces querra decir que ya se hizo el cierre de caja entonces podrias revisar si ese valor es 1 que se haga el insert, claro esto manejandolo con triggers after insert y triggers after update :)

saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #7 (permalink)  
Antiguo 22/06/2012, 18:47
Avatar de matanga  
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 16 años, 6 meses
Puntos: 85
Respuesta: Ejecutar trigger al cambiar dos tablas

Cita:
Iniciado por juanchiy2k Ver Mensaje
Hola estimados.
Quiero realizar un trigger para mandar un mail y que este se ejecute cuando en una tabla se modifique un determinado campo, y además cuando en otra tabla se inserte un nuevo registro.

Un saludo cordial.
Esto no es muy recomendado, considera los siguientes puntos:

1. Enviar un mail es un proceso lento, por lo que tenerlo dentro de un trigger afecta notablemente el rendimiento de la consulta que dispara el trigger.

2. El mail es una comunicación diferida, no de tiempo real, y por lo tanto, no es necesario que se ejecute inmediatamente después de la consulta que dispara el trigger.

3. El envío del mail puede fallar por diferentes motivos (red, servidor de correo, etc), y en estos casos, con un trigger no podrás hacer reintentos.

En general, esto se resuelve con una cola de mensajes, por ejemplo: que el trigger inserte un registro en una tabla Mail con los campos (From varchar, To varchar, Subject varchar, Body varchar, Enviado int, Reintentos int) y que una tarea programada en Windows o en SQL Server ejecute con una frecuencia dada un procedimiento que lea la tabla y envíe los correos.

Saludos

Etiquetas: insert, registro, tabla, tablas, trigger, campos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:50.