not mail habilitar for enviar enabled desde correo configurar sql-server sql-server-2008 alert sql-server-agent

sql-server - for - habilitar database mail sql server 2014



SQL Server Agent Job Notificar a varios operadores en caso de error (6)

Tengo una configuración de trabajo en SQL Server 2008 que envía un correo electrónico de notificación a un operador cuando falla el trabajo.

Pregunta: ¿Es posible configurar un correo electrónico de notificación que se envía a varios operadores para ese trabajo específico?

Creo que una posible solución para esto es crear muchas alertas para la base de datos para cada gravedad dada, pero esperaba que hubiera una forma más concisa de hacerlo. Si tuviera que ir por esta ruta, ¿qué errores de gravedad serían probablemente provocados por un trabajo fallido? (No creo que necesite los 25 para algo así)

¿Se puede hacer esto a través del comando sql para agregar más operadores para notificar el fallo? A través de la interfaz de usuario solo puede elegir un solo operador.


Pregunta: ¿Es posible configurar un correo electrónico de notificación que se envía a varios operadores para ese trabajo específico?

No creo que esto sea posible.

Ciertamente, mirando la estructura de [msdb].[dbo].[sysjobs] las diversas columnas operator_id están en esta tabla, lo que apoyaría la idea de que 1 a muchas no es posible.

Pero algunas alternativas

  1. Podría crear un nuevo operador con la lista de direcciones de correo electrónico delimitada por puntos y coma. Mirando la definición de sysoperators esto es bueno para cadenas que pueden caber en nvarchar(100)
  2. Si necesita exceder eso, probablemente podría configurar un grupo de distribución de correo electrónico en intercambio o lo que sea.

Así que esto es lo que se me ocurrió como solución alternativa si la intención es que se notifique a varias personas en su organización si falla un trabajo y a un grupo diferente de personas múltiples para el éxito.

Notará que los Pasos 1-3 son las tareas normales para las que se usa el trabajo de programación como lo haría para su tarea. Puede haber tantos pasos como sea necesario antes de estos, pero el último paso (Paso 3) del proceso debe romper "En caso de éxito" y "En caso de error" para ir a correos electrónicos separados. Además, todos los "En caso de fallos" deben continuar con su "Correo electrónico de error" como se resalta a continuación. Por lo tanto, el grupo de fallas recibe correos electrónicos y el trabajo aún fallará para los registros históricos.

Verá la opción de cambiar la dirección de "Acción de éxito" y "Acción de falla" en la pestaña Avanzado de los pasos del trabajo.

Paso de correo electrónico fallido - Propiedad general

Paso de correo electrónico de error - propiedad avanzada

Success Email Step - Propiedad general

Paso de correo electrónico de éxito - propiedad avanzada

Para otros necesitados de ayuda. Notificar a múltiples operadores con resultados diferenciales.


El método más simple que utilizo para notificar a varios "OPERATORS" en "JOB FAILURE" es:

En SSMS>SQL Server Agent>Operators crean un nuevo OPERATOR o EDIT existente y agregan direcciones de correo electrónico adicionales separadas por ; en el cuadro "E-mail name:" .


La mejor práctica sería crear un grupo en su servidor de correo, enviar las notificaciones al grupo y luego controlar el número de destinatarios desde el servidor de correo.


Si la intención es que se notifique a varias personas de su organización si falla un trabajo, puede cambiar la dirección de correo electrónico del operador para incluir varios buzones separando cada buzón con un punto y coma.

Supongo que su operador notificado se llama JobWatcher:

EXECUTE msdb.dbo.sp_update_operator @name = N''JobWatcher'', @email_address = N''[email protected];[email protected]'';

Ahora [email protected] y [email protected] recibirán un correo cuando el trabajo falle.


Utilice el siguiente script para aumentar la longitud del carácter de la dirección de correo electrónico. USE mdsdb GO ALTER TABLE sysoperators ALTER column email_address NVARCHAR(2000);