sp_add_alert (Transact-SQL)
Crea una alerta.
Sintaxis
sp_add_alert [ @name = ] 'name'
[ , [ @message_id = ] message_id ]
[ , [ @severity = ] severity ]
[ , [ @enabled = ] enabled ]
[ , [ @delay_between_responses = ] delay_between_responses ]
[ , [ @notification_message = ] 'notification_message' ]
[ , [ @include_event_description_in = ] include_event_description_in ]
[ , [ @database_name = ] 'database' ]
[ , [ @event_description_keyword = ] 'event_description_keyword_pattern' ]
[ , { [ @job_id = ] job_id | [ @job_name = ] 'job_name' } ]
[ , [ @raise_snmp_trap = ] raise_snmp_trap ]
[ , [ @performance_condition = ] 'performance_condition' ]
[ , [ @category_name = ] 'category' ]
[ , [ @wmi_namespace = ] 'wmi_namespace' ]
[ , [ @wmi_query = ] 'wmi_query' ]
Argumentos
[ @name = ] 'name'
Nombre de la alerta. El nombre aparece en el mensaje de correo electrónico o de buscapersonas enviado como respuesta a la alerta. Debe ser único y puede incluir el carácter de porcentaje (%). name es de tipo sysname y no tiene ningún valor predeterminado.[ @message_id = ] message_id
Número del mensaje de error que define la alerta. (Normalmente se corresponde con un número de error de la tabla sysmessages). message_id es de tipo int y su valor predeterminado es 0. Si se usa severity para definir la alerta, message_id debe ser 0 o NULL.Nota
Sólo los errores sysmessages escritos en el registro de aplicación de Microsoft Windows pueden provocar que se envíe una alerta.
[ @severity = ] severity
Nivel de gravedad (de 1 a 25) que define la alerta. Cualquier mensaje de SQL Server almacenado en la tabla sysmessages enviada al registro de aplicación de Microsoft Windows con la gravedad indicada produce el envío de la alerta. severity es de tipo int y su valor predeterminado es 0. Si se usa message_id para definir la alerta, severity debe ser 0.[ @enabled = ] enabled
Indica el estado actual de la alerta. enabled es de tipo tinyint y su valor predeterminado es 1 (habilitado). Si se establece en 0, la alerta no está habilitada y no se activa.[ @delay_between_responses = ] delay_between_responses
Intervalo de espera en segundos, entre respuestas a la alerta. delay_between_responseses de tipo int y su valor predeterminado es 0, lo que significa que no existe intervalo de espera entre respuestas (cada vez que se produce la alerta, se genera una respuesta). La respuesta puede tener lugar de cualquiera de estas formas, o de ambas:Una o más notificaciones enviadas por correo electrónico o el buscapersonas
Un trabajo que debe ejecutarse
Al establecer este valor, es posible evitar, por ejemplo, que se envíen mensajes de correo electrónico no deseados cuando una alerta se produce repetidamente en un período de tiempo breve.
[ @notification_message = ] 'notification_message'
Es un mensaje adicional opcional que se envía al operador como parte de la notificación por correo electrónico, net send o buscapersonas. notification_message es de tipo nvarchar(512) y su valor predeterminado es NULL. La especificación de notification_message es útil para agregar notas especiales como, por ejemplo, procedimientos para la resolución de un problema.[ @include_event_description_in = ] include_event_description_in
Indica si la descripción del error de SQL Server debe incluirse como parte del mensaje de notificación. include_event_description_ines de tipo tinyint, su valor predeterminado es 5 (correo electrónico y net send) y puede tener uno o varios valores combinados con un operador lógico OR.Importante Las opciones de net send y del buscapersonas se quitarán del Agente SQL Server en una versión futura de Microsoft SQL Server. Evite utilizar estas características en los nuevos trabajos de programación y planee modificar las aplicaciones que actualmente las utilizan.
Valor
Descripción
0 (predeterminado)
Ninguna
1
Correo electrónico
2
Buscapersonas
4
net send
[ @database_name = ] 'database'
Base de datos en la que debe ocurrir el error para que se active la alerta. Si no se suministra database, la alerta se activa independientemente de dónde se haya producido el error. database es de tipo sysname. No se permiten nombres incluidos entre corchetes ([ ]). El valor predeterminado es NULL.[ @event_description_keyword = ] 'event_description_keyword_pattern'
Secuencia de caracteres a la que debe parecerse la descripción del error de SQL Server. Se pueden usar caracteres de coincidencia de patrón de la expresión LIKE de Transact-SQL. event_description_keyword_pattern es de tipo nvarchar(100) y su valor predeterminado es NULL. Este parámetro resulta útil para filtrar nombres de objeto (por ejemplo, %customer_table%).[ @job_id = ] job_id
Es el número de identificación del trabajo que se debe ejecutar como respuesta a esta alerta. job_id es de tipo uniqueidentifier y su valor predeterminado es NULL.[ @job_name = ] 'job_name'
El nombre del trabajo que debe ejecutarse como respuesta a esta alerta. job_namees de tipo sysname y su valor predeterminado es NULL.Nota
Se debe especificar job_id o job_name, pero no ambos.
[ @raise_snmp_trap = ] raise_snmp_trap
No se ha implementado en SQL Server versión 7.0. raise_snmp_trap es de tipo tinyint y su valor predeterminado es 0.[ @performance_condition = ] 'performance_condition'
Es un valor expresado en formato 'itemcomparatorvalue'. performance_condition es de tipo nvarchar(512), su valor predeterminado es NULL y consta de estos elementos.Elemento de formato
Descripción
Item
Objeto de rendimiento, contador de rendimiento o instancia con nombre del contador
Comparator
Uno de estos operadores: >, < o =.
Value
Valor numérico del contador
[ @category_name = ] 'category'
Es el nombre de la categoría de alerta. category es de tipo sysname y su valor predeterminado es NULL.[ @wmi_namespace= ] 'wmi_namespace'
Es el espacio de nombres WMI para consultar eventos. wmi_namespace es de tipo sysname y su valor predeterminado es NULL. Sólo se admiten espacios de nombres del servidor local.[ @wmi_query= ] 'wmi_query'
La consulta que especifica el evento WMI para la alerta. wmi_query es de tipo nvarchar(512) y su valor predeterminado es NULL.
Valores de código de retorno
0 (correcto) o 1 (error)
Conjuntos de resultados
Ninguno
Comentarios
sp_add_alert se debe ejecutar desde la base de datos msdb.
Estas son las circunstancias en las que los errores y mensajes que generan SQL Server y las aplicaciones de SQL Server se envían al registro de aplicación de Windows y que, por lo tanto, pueden generar alertas:
Errores sys.messages de gravedad 19 o superior
Cualquier instrucción RAISERROR llamada con la sintaxis WITH LOG
Errores sys.messages modificados o creados mediante sp_altermessage
Eventos registrados mediante xp_logevent
SQL Server Management Studioproporciona una forma gráfica y fácil de administrar todo el sistema de alertas, y constituye el método recomendado para configurar una infraestructura de alertas.
Si una alerta no funciona correctamente, compruebe lo siguiente:
El servicio Agente SQL Server se está ejecutando.
El evento ha aparecido en el registro de aplicación de Windows.
La alerta está habilitada.
Los eventos generados mediante xp_logevent se producen en la base de datos maestra. Por tanto, xp_logevent no desencadena una alerta a menos que el valor de @database_name para la alerta sea 'master' o NULL.
Permisos
De forma predeterminada, sólo los miembros del rol fijo de servidor sysadmin pueden ejecutar sp_add_alert.
Ejemplos
El ejemplo siguiente muestra cómo agregar una alerta (Test Alert) que ejecute el trabajo Back up the AdventureWorks2008R2 Database al activarse.
Nota
En el ejemplo se da por supuesto que el mensaje 55001 y el trabajo Back up the AdventureWorks2008R2 Database ya existen. El siguiente es sólo un ejemplo.
USE msdb ;
GO
EXEC dbo.sp_add_alert
@name = N'Test Alert',
@message_id = 55001,
@severity = 0,
@notification_message = N'Error 55001 has occurred. The database will be backed up...',
@job_name = N'Back up the AdventureWorks2008R2 Database' ;
GO