Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Cria um alerta.
Transact-SQL convenções de sintaxe
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'nome'
O nome do alerta. O nome aparece na mensagem de e-mail ou 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 deve 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é 25aqui) que define o alerta.
@severity é int, com um padrão de 0. Qualquer mensagem do sysmessages SQL Server armazenada 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 [ = ] ativado
Indica o status atual do alerta.
@enabled é tinyint, com um padrão de 1 (enabled). Se 0o , o alerta não estiver ativado e não for acionado.
@delay_between_responses [ = ] delay_between_responses
O período de espera, em segundos, entre as 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 ser de uma destas formas 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 evitar, por exemplo, que mensagens de e-mail 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 e-mail, 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 é minúsculo, 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 novos trabalhos de desenvolvimento e planeje modificar aplicativos que atualmente usam esses recursos.
| Valor | Descrição |
|---|---|
0 |
Nenhum |
1 |
Correio eletrónico |
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. Este parâmetro é útil para filtrar nomes de objetos (por exemplo, customer_table).
Observação
LIKETransact-SQL caracteres de correspondência de padrões de expressão 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 é identificador exclusivo, com um padrão de NULL.
Tanto @job_id como @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 como @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 é minúsculo, 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 de alerta.
@category_name é sysname, com um padrão de NULL.
@wmi_namespace [ = ] N'wmi_namespace'
O namespace WMI para consultar eventos.
@wmi_namespace é sysname, com um padrão de NULL. Somente namespaces no servidor local são suportados.
@wmi_query [ = ] N'wmi_query'
A consulta que especifica o evento WMI para o alerta.
@wmi_query é nvarchar(512), com um padrão de NULL.
Valores de código de retorno
0 (sucesso) ou 1 (fracasso).
Conjunto de resultados
Nenhum.
Observações
sp_add_alert deve ser executado a partir do banco de dados msdb.
Estas são as circunstâncias em que erros/mensagens geradas 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 uma maneira gráfica fácil de gerenciar todo o sistema de alertas e é a maneira recomendada de 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 de aplicativos do Windows
O alerta está ativado
Os eventos gerados com
xp_logeventocorrem no banco de dadosmaster. Portanto, não aciona um alerta,xp_logeventa menos que o @database_name para o 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 (Test Alert) que executa o Back up the AdventureWorks2022 Database trabalho quando acionado.
Observação
Este exemplo pressupõe que a mensagem 55001 e o Back up the AdventureWorks2022 Database trabalho já existem. O exemplo é mostrado apenas 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