Partilhar via


sp_add_alert (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. Ele deve ser exclusivo e pode conter o caractere de porcentagem (%). name é sysname, sem nenhum 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 is int, com um padrão 0. Se severity for usado para definir o alerta, message_id deverá ser 0 ou NULL.

    ObservaçãoObservaçã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 um 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 tempo 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 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 de email, net send ou pager. notification_message é nvarchar(512), com um padrão NULL. Especificar notification_message é útil para adicionar observações especiais como procedimentos corretivos.

  • [ @include_event_description_in = ] include_event_description_in
    Especifica 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 o operador lógico OR.

    Observação importanteImportante

    As opções Pager e net send serão removidas do SQL Server Agent em uma versão futura de Microsoft SQL Server. Evite usar esses recursos em novo trabalho de desenvolvimento e planeje modificar os aplicativos que atualmente os utilizam.

    Valor

    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á acionado independentemente de onde o erro ocorreu. 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 Transact-SQL LIKE podem ser usados. event_description_keyword_pattern é nvarchar(100), com um padrão 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 NULL.

  • [ @job_name = ] 'job_name'
    O nome do trabalho a ser executado em resposta a esse alerta. job_nameé sysname, com um padrão NULL.

    ObservaçãoObservaçã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 NULL, e consiste nestes elementos.

    Elemento Format

    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 is sysname, com um padrão NULL.

  • [ @wmi_namespace= ] 'wmi_namespace'
    O namespace WMI a ser examinado quanto a eventos. wmi_namespace é sysname, com um padrão NULL. Somente namespaces no servidor local possuem suporte.

  • [ @wmi_query= ] 'wmi_query'
    A consulta que especifica o evento WMI para o alerta. wmi_query é nvarchar(512), com um padrão 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 AdventureWorks2008R2 Database quando é acionado.

ObservaçãoObservação

Este exemplo supõe que a mensagem 55001 e o trabalho Back up the AdventureWorks2008R2 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 AdventureWorks2008R2 Database' ;
GO