sp_add_alert (Transact-SQL)
Cria um alerta.
Convenções da sintaxe Transact-SQL
Sintaxe
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'
O nome do alerta. O nome é exibido na mensagem de email ou de pager enviada em resposta ao alerta. Deve ser exclusivo e pode conter o caractere de porcentagem (%). name é sysname, sem padrão.[ @message_id = ] message_id
O número de erro da mensagem que define o alerta. (Normalmente corresponde a um número de erro na tabela sysmessages). message_id é int, com um padrão de 0. Se severity for usado para definir o alerta, message_id deverá ser 0 ou NULL.Observação Somente erros sysmessages gravados no log de aplicativos do Microsoft Windows podem fazer um alerta ser enviado.
[ @severity = ] severity
O nível de severidade (de 1 a 25) que define o alerta. Qualquer mensagem do SQL Server armazenada na tabela sysmessages que for enviada ao log de aplicativos do Microsoft Windows com a severidade indicada fará com que o alerta seja enviado. severity é int, com um padrão de 0. Se message_id for usado para definir o alerta, severity deverá ser 0.[ @enabled = ] enabled
Indica o status atual do alerta. enabled é tinyint, com padrão de 1 (habilitado). Se for 0, o alerta não está habilitado e não será acionado.[ @delay_between_responses = ] delay_between_responses
O período de espera, em segundos, entre respostas ao alerta. delay_between_responsesé int, com um padrão de 0, o que significa que não existe espera entre as respostas (cada ocorrência do alerta gera uma resposta). A resposta pode acontecer de uma destas maneiras ou de ambas:Uma ou mais notificações enviadas por email ou pager.
Um trabalho a ser executado.
Ao definir esse valor, é possível evitar, por exemplo, que mensagens de email não desejadas sejam enviadas quando um alerta ocorre repetidamente em um curto período.
[ @notification_message = ] 'notification_message'
É uma mensagem adicional opcional enviada ao operador como parte da notificação por email, net send ou pager. notification_message é nvarchar(512), com um padrão de NULL. Especificar notification_message é útil para adicionar observações especiais como procedimentos corretivos.[ @include_event_description_in = ] include_event_description_in
Define se a descrição do erro do SQL Server deve ser incluída como parte da mensagem de notificação. include_event_description_in* *é tinyint, com um padrão de 5 (email e net send) e pode ter um ou mais desses valores combinados com um operador lógico OR.Importante As opções Pager e net send serão removidas do SQL Server Agent em uma versão futura do Microsoft SQL Server. Evite usar esses recursos em novos trabalhos de desenvolvimento e planeje modificar os aplicativos que os utilizam no momento.
Value
Descrição
0 (padrão)
Nenhum
1
Email
2
Pager
4
net send
[ @database_name = ] 'database'
O banco de dados no qual o erro deve ocorrer para que o alerta seja acionado. Se databasenão for fornecido, o alerta será disparado independentemente de onde ocorreu o erro. database é sysname. Os nomes entre colchetes ([ ]) não são permitidos. O valor padrão é NULL.[ @event_description_keyword = ] 'event_description_keyword_pattern'
A sequência de caracteres que a descrição do erro do SQL Server deve ter. Os caracteres correspondentes ao padrão da expressão LIKE do Transact-SQL podem ser usados. event_description_keyword_pattern é nvarchar(100), com um padrão de NULL. Esse parâmetro é útil para filtrar nomes de objeto (por exemplo, % customer_table%).[ @job_id = ] job_id
O número de identificação do trabalho a ser executado em resposta a esse alerta. job_id é uniqueidentifier, com um padrão de NULL.[ @job_name = ] 'job_name'
O nome do trabalho a ser executado em resposta a esse alerta. job_name é sysname, com um padrão de NULL.Observação É necessário especificar a job_id ou o job_name, mas não é possível especificar ambos ao mesmo tempo.
[ @raise_snmp_trap = ] raise_snmp_trap
Não implementado no SQL Server versão 7.0. raise_snmp_trap é tinyint, com um padrão de 0.[ @performance_condition = ] 'performance_condition'
É um valor é expresso no formato 'itemcomparatorvalue'. performance_condition é nvarchar(512) com um padrão de NULL e consiste nestes elementos.Elemento de formato
Descrição
Item
Um objeto de desempenho, contador de desempenho ou instância nomeada do contador
Comparator
Um destes operadores: >, < ou =.
Value
Valor numérico do contador
[ @category_name = ] 'category'
O nome da categoria do alerta. category é sysname, com um padrão de NULL.[ @wmi_namespace= ] 'wmi_namespace'
O namespace WMI para consulta de eventos. wmi_namespace é sysname, com um padrão de NULL. Somente namespaces no servidor local possuem suporte.[ @wmi_query= ] 'wmi_query'
A consulta que especifica o evento WMI do alerta. wmi_query é nvarchar(512), com um padrão de NULL.
Valores de código de retorno
0 (êxito) ou 1 (falha)
Conjuntos de resultados
Nenhum
Comentários
sp_add_alert deve ser executado a partir do banco de dados msdb.
Essas são as circunstâncias sob as quais erros/mensagens gerados pelos aplicativos SQL Server e SQL Server são enviados ao log de aplicativos do Windows e, assim, podem gerar alertas:
Erros sys.messages com severidade 19 ou superior
Qualquer instrução RAISERROR é invocada com a sintaxe WITH LOG
Qualquer erro sys.messages modificado ou criado usando sp_altermessage
Qualquer evento registrado usando xp_logevent
O SQL Server Management Studio fornece um modo gráfico e fácil para gerenciar o sistema de alertas inteiro e é recomendado para configurar uma infraestrutura de alerta.
Se um alerta não estiver funcionando corretamente, verifique se:
O serviço do SQL Server Agent está em execução.
O evento foi exibido no log de aplicativos do Windows.
O alerta está habilitado.
Eventos gerados com xp_logevent ocorrem no banco de dados mestre. Portanto, xp_logevent não dispara um alerta a menos que o @database_name para o alerta seja 'mestre' ou NULL.
Permissões
Por padrão, somente membros da função de servidor fixa sysadmin podem executar sp_add_alert.
Exemplos
O exemplo a seguir adiciona um alerta (Alerta de Teste) que executa o trabalho Back up the AdventureWorks2012 Database quando é acionado.
Observação |
---|
Este exemplo supõe que a mensagem 55001 e o trabalho Back up the AdventureWorks2012 Database já existam. O exemplo é mostrado somente para fins ilustrativos. |
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 AdventureWorks2012 Database' ;
GO
Consulte também
Referência
sp_add_notification (Transact-SQL)
sp_altermessage (Transact-SQL)
sp_delete_alert (Transact-SQL)
sp_update_alert (Transact-SQL)