Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se:SQL Server
Cria um alerta.
Convenções de sintaxe de Transact-SQL
Sintaxe
sp_add_alert [ @name = ] N'name'
[ , [ @message_id = ] message_id ]
[ , [ @severity = ] severity ]
[ , [ @enabled = ] enabled ]
[ , [ @delay_between_responses = ] delay_between_responses ]
[ , [ @notification_message = ] N'notification_message' ]
[ , [ @include_event_description_in = ] include_event_description_in ]
[ , [ @database_name = ] N'database_name' ]
[ , [ @event_description_keyword = ] N'event_description_keyword' ]
[ , { [ @job_id = ] job_id | [ @job_name = ] N'job_name' } ]
[ , [ @raise_snmp_trap = ] raise_snmp_trap ]
[ , [ @performance_condition = ] N'performance_condition' ]
[ , [ @category_name = ] N'category_name' ]
[ , [ @wmi_namespace = ] N'wmi_namespace' ]
[ , [ @wmi_query = ] N'wmi_query' ]
[ ; ]
Argumentos
[ @name = ] N'name'
O nome do alerta. O nome é exibido na mensagem de email ou de pager enviada em resposta ao alerta. Ele 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. (Geralmente corresponde a um número de erro na sysmessages tabela.) @message_id é int, com um padrão de 0. Se @severity for usado para definir o alerta, @message_id deverá ser 0 ou NULL.
Somente sysmessages erros gravados no log de aplicativos do Microsoft Windows podem fazer com que um alerta seja enviado.
@severity [ = ] gravidade
O nível de gravidade (de 1 até 25) que define o alerta.
@severity é int, com um padrão de 0. Qualquer mensagem do SQL Server armazenada sysmessages na tabela enviada para o log de aplicativos do Windows com a gravidade indicada faz com que o alerta seja enviado. Se @message_id for usado para definir o alerta, @severity deverá ser 0.
@enabled [ = ] habilitado
Indica o status atual do alerta.
@enabled é tinyint, com um padrão de 1 (enabled). Se 0, o alerta não está habilitado e não é 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 há 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 e-mail ou pager
- Um trabalho a ser executado
Ao definir esse valor, é possível impedir, por exemplo, que mensagens de email indesejadas sejam enviadas quando um alerta ocorre repetidamente em um curto período de tempo.
@notification_message [ = ] N'notification_message'
Uma mensagem adicional opcional enviada ao operador como parte da notificação por email, net sendou pager.
@notification_message é nvarchar(512), com um padrão de NULL. Especificar @notification_message é útil para adicionar notas especiais, como procedimentos corretivos.
@include_event_description_in [ = ] include_event_description_in
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 (e-mail e net send), e pode ter um ou mais desses valores combinados com um OR operador lógico.
Importante
O pager e net send as opções serão removidos do SQL Server Agent em uma versão futura do SQL Server. Evite usar esses recursos em novo trabalho de desenvolvimento e planeje modificar os aplicativos que os usam atualmente.
| Valor | Descrição |
|---|---|
0 |
Nenhum |
1 |
|
2 |
Pager |
4 |
net send |
@database_name [ = ] N'database_name'
O banco de dados no qual o erro deve ocorrer para que o alerta seja acionado. Se @database_name não for fornecido, o alerta será acionado independentemente de onde o erro ocorreu.
@database_name é sysname, com um padrão de NULL. Nomes entre colchetes ([ ]) não são permitidos.
@event_description_keyword [ = ] N'event_description_keyword'
Uma sequência de caracteres que deve ser encontrada na descrição do erro do SQL Server no log de mensagens de erro.
@event_description_keyword é nvarchar(100), com um padrão de NULL. Esse parâmetro é útil para filtrar nomes de objetos (por exemplo, customer_table).
Observação
Os caracteres de correspondência de padrões de expressão Transact-SQL LIKE não podem ser usados.
@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.
Tanto @job_id quanto @job_name devem ser especificados, mas ambos não podem ser especificados.
@job_name [ = ] N'job_name'
O nome do trabalho a ser executado em resposta a esse alerta.
@job_name é sysname, com um padrão de NULL.
Tanto @job_id quanto @job_name devem ser especificados, mas ambos não podem ser especificados.
@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 [ = ] N'performance_condition'
Um valor expresso no formato 'ItemComparatorValue'.
@performance_condition é nvarchar(512), com um padrão de NULL, e consiste nesses elementos.
| Elemento Format | Descrição |
|---|---|
| Item | Um objeto de desempenho, contador de desempenho ou instância nomeada do contador. |
| Comparador | Um destes operadores: >, <, ou =. |
| Valor | Valor numérico do contador. |
@category_name [ = ] N'category_name'
O nome da categoria do alerta.
@category_name é sysname, com um padrão de NULL.
@wmi_namespace [ = ] N'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 [ = ] N'wmi_query'
A consulta que especifica o evento WMI do alerta.
@wmi_query é nvarchar(512), com um padrão de NULL.
Valores do código de retorno
0 (sucesso) ou 1 (falha).
Conjunto de resultados
Nenhum.
Comentários
sp_add_alert deve ser executado a partir do msdb banco de dados.
Estas são as circunstâncias em que erros/mensagens gerados por aplicativos SQL Server e SQL Server são enviados para o log de aplicativos do Windows e, portanto, podem gerar alertas:
- Erros de gravidade 19 ou superior
sys.messages - Qualquer
RAISERRORinstrução invocada comWITH LOGsintaxe - Qualquer
sys.messageserro modificado ou criado usandosp_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 SQL Server Agent está em execução
O evento apareceu no log do aplicativo do Windows
O alerta está ativado
Eventos gerados com
xp_logeventocorrem no banco de dadosmaster. Portanto, não dispara um alerta,xp_logeventa menos que o @database_name do alerta sejamasterouNULL.
Permissões
Por padrão, somente membros da função de servidor fixa sysadmin podem executar sp_add_alert.
Exemplos
Exemplo 1 – Adicionar um alerta para um trabalho
O exemplo a seguir adiciona um alerta (Alerta de Teste) que executa o trabalho Back up the AdventureWorks2022 Database quando é acionado.
Observação
Este exemplo supõe que a mensagem 55001 e o trabalho Back up the AdventureWorks2022 Database já existam. O exemplo é mostrado somente para fins ilustrativos.
USE msdb;
GO
EXECUTE 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 AdventureWorks2022 Database';
GO
Exemplo 2 – Adicionar um alerta para um limite de replicação
O exemplo a seguir adiciona um alerta para informar quando uma transação de replicação excedeu o limite de latência:
EXECUTE msdb.dbo.sp_add_alert
@name = N'Replication Warning: Transactional replication latency (Threshold: latency)',
@message_id = 14161,
@severity = 0,
@enabled = 1,
@delay_between_responses = 30,
@include_event_description_in = 5,
@category_name = N'Replication',
@job_id = N'00000000-0000-0000-0000-000000000000';
GO