Cómo ignorar un disparador cuando todavía hay un disparador ejecutándose
Frecuentes
Visto 259 veces
0
Problema:
Quiero escribir un disparador cuando se inserta una tabla, tengo que hacer una verificación y enviar un correo electrónico a un usuario en particular. Para esto, estoy pensando en usar un disparador que insertará algunos valores en otro tabla COLA. Entonces el gatillo en el tabla COLA obtendrá el número x superior de correos electrónicos y los enviará y repetirá hasta que se completen todos los registros. Entonces, una vez que se llama al disparador, puede haber inserciones en el tabla COLA mientras el gatillo está funcionando. Por lo tanto, el activador esperará y cada vez que se inserte en la tabla QUEUE y después de que finalice el activador en ejecución actual.
Pregunta:
Es mi enfoque es correcto. Si hay un método mejor, ¿alguien puede ayudarme? ¿Es un problema de diseño si el gatillo se dispara una y otra vez? ¿Hay alguna manera de ignorar los disparadores mientras hay un disparador en ejecución?
1 Respuestas
1
Lo que puedo sugerir aquí es,
1. Cree un activador en la tabla principal ya que cada vez que se inserta un nuevo registro en la tabla principal, inserte el registro en otra tabla (tabla COLA).
2. Ahora cree un sproc que seleccionará las filas X superiores de la tabla de cola y enviará correos electrónicos.
3.Ahora cree un trabajo sql que ejecutará periódicamente el sproc creado anteriormente.
4. En sproc puede manejar como después de enviar un correo electrónico, puede eliminar esos registros de la tabla QUEUE o hacer algo con ellos.
Respondido 28 ago 12, 13:08
Ok, he considerado acerca de los trabajos del cliente Sql. Pero lo que pensé fue que este procedimiento almacenado de envío de correo electrónico se llamará periódicamente. pero si se puede lograr de otra manera como pretendía, el procedimiento almacenado se detendrá después de que se completen todos los registros que se insertan en la tabla. - diyoda_
sí, y se reanudará siempre que haya registros. ¿Así es como se supone que debe ser el rito? - AnandPhadke
Sí, ¿cuál es su comentario sobre la respuesta? diyoda_
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas triggers sql-server-2008-r2 or haz tu propia pregunta.
Podría valer la pena aprender Agente de servicios de servidor SQL. Su activador usaría la cola nativa para poner en cola los correos, y el procedimiento almacenado programado leería los mensajes y los enviaría. - Nikola Markovinović