Cómo ignorar un disparador cuando todavía hay un disparador ejecutándose

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?

preguntado el 28 de agosto de 12 a las 13:08

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

1 Respuestas

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 or haz tu propia pregunta.