sp_add_job (Transact-SQL)

Adiciona um novo trabalho executado pelo serviço SQLServerAgent.

Ícone de vínculo de tópicoConvenções de sintaxe Transact-SQL

Sintaxe

sp_add_job [ @job_name = ] 'job_name'
     [ , [ @enabled = ] enabled ] 
     [ , [ @description = ] 'description' ] 
     [ , [ @start_step_id = ] step_id ] 
     [ , [ @category_name = ] 'category' ] 
     [ , [ @category_id = ] category_id ] 
     [ , [ @owner_login_name = ] 'login' ] 
     [ , [ @notify_level_eventlog = ] eventlog_level ] 
     [ , [ @notify_level_email = ] email_level ] 
     [ , [ @notify_level_netsend = ] netsend_level ] 
     [ , [ @notify_level_page = ] page_level ] 
     [ , [ @notify_email_operator_name = ] 'email_name' ] 
          [ , [ @notify_netsend_operator_name = ] 'netsend_name' ] 
     [ , [ @notify_page_operator_name = ] 'page_name' ] 
     [ , [ @delete_level = ] delete_level ] 
     [ , [ @job_id = ] job_id OUTPUT ] 

Argumentos

  • [ @job_name = ] 'job_name'
    O nome do trabalho. O nome deve ser exclusivo e não pode conter o caractere de porcentagem (%). job_name é nvarchar(128), sem padrão.

  • [ @enabled = ] enabled
    Indica o status atual do trabalho adicionado. enabledé tinyint, com um padrão 1 (habilitado). Se for 0, o trabalho não está habilitado e não é executado de acordo com sua agenda; entretanto, pode ser executado manualmente.

  • [ @description = ] 'description'
    A descrição do trabalho. description é nvarchar(512), com um padrão NULL. Se a description for omitida, será usado “Nenhuma descrição disponível”.

  • [ @start_step_id = ] step_id
    O número de identificação da primeira etapa a ser executada para o trabalho. step_idé int, com um padrão 1.

  • [ @category_name = ] 'category'
    A categoria do trabalho. categoryé sysname, com um padrão NULL.

  • [ @category_id = ] category_id
    Um mecanismo independente de idioma para especificar uma categoria de trabalho. category_idé int, com um padrão NULL.

  • [ @owner_login_name = ] 'login'
    O nome do logon proprietário do trabalho. loginé sysname, com um padrão NULL, que é interpretado como o nome de logon atual. Somente os membros da função de servidor fixa sysadmin podem definir ou alterar o valor de @owner_login_name. Se usuários que não forem membros da função sysadmin definirem ou alterarem o valor de @owner_login_name, haverá falha na execução deste procedimento e um erro será retornado.

  • [ @notify_level_eventlog = ] eventlog_level
    Um valor que indica quando colocar uma entrada no log de aplicativos do Microsoft Windows para este trabalho. eventlog_levelé int e pode ser um destes valores.

    Valor

    Descrição

    0

    Nunca

    1

    Caso haja êxito

    2 (padrão)

    Caso haja falha

    3

    Sempre

  • [ @notify_level_email = ] email_level
    Um valor que indica quando enviar um email após a conclusão deste trabalho. email_levelé int, com um padrão 0, que indica nunca. email_levelusa os mesmos valores que eventlog_level.

  • [ @notify_level_netsend = ] netsend_level
    Um valor que indica quando enviar uma mensagem de rede após a conclusão deste trabalho. netsend_levelé int, com um padrão 0, que indica nunca. netsend_level usa os mesmos valores que eventlog_level.

  • [ @notify_level_page = ] page_level
    Um valor que indica quando enviar uma página após a conclusão deste trabalho. page_levelé int, com um padrão 0, que indica nunca. page_levelusa os mesmos valores que eventlog_level.

  • [ @notify_email_operator_name = ] 'email_name'
    O nome de email da pessoa para quem o email será enviado quando email_level é alcançado. email_name é sysname, com um padrão NULL.

  • [ @notify_netsend_operator_name = ] 'netsend_name'
    O nome do operador para quem a mensagem de rede será enviada após a conclusão deste trabalho. netsend_nameé sysname, com um padrão NULL.

  • [ @notify_page_operator_name = ] 'page_name'
    O nome da pessoa para quem uma mensagem de pager será enviada após a conclusão deste trabalho. page_nameé sysname, com um padrão NULL.

  • [ @delete_level = ] delete_level
    Um valor que indica quando excluir o trabalho. delete_valueé int, com um padrão 0, que significa nunca. delete_levelusa os mesmos valores que eventlog_level.

    ObservaçãoObservação

    Quando delete_level for 3, o trabalho será executado apenas uma vez, independentemente de quaisquer agendas definidas para o trabalho. Além disso, se um trabalho excluir a si próprio, todo o histórico do trabalho também será excluído.

  • [ @job_id = ] job_idOUTPUT
    O número de identificação do trabalho atribuído ao trabalho se ele for criado com êxito. job_idé uma variável de saída do tipo uniqueidentifier, com um padrão NULL.

Valores de código de retorno

0 (êxito) ou 1 (falha)

Conjuntos de resultados

Nenhum

Comentários

@originating_server existe em sp_add_job, mas não está listado em Argumentos. @originating_server está reservado para uso interno.

Depois que sp_add_job for executado para adicionar um trabalho, sp_add_jobstep poderá ser usado para adicionar etapas que executam atividades para o trabalho. sp_add_jobschedule pode ser usado para criar a agenda que o serviço SQL Server Agent usa para executar o trabalho. Use sp_add_jobserver para definir a instância do SQL Server em que o trabalho é executado, e sp_delete_jobserver para remover o trabalho da instância do SQL Server.

Se o trabalho será executado em um ou mais servidores de destino em um ambiente multiservidor, use sp_apply_job_to_targets para definir os servidores de destino ou grupos de servidores de destino para o trabalho. Para remover trabalhos de servidores de destino ou de grupos de servidores de destino, use sp_remove_job_from_targets.

O SQL Server Management Studio fornece um modo gráfico e fácil para gerenciar trabalhos e é recomendado para criar e gerenciar a infra-estrutura de trabalhos.

Permissões

Para executar este procedimento armazenado, os usuários devem ser membros da função de servidor fixa sysadmin ou receber uma das seguintes funções de banco de dados fixas do SQL Server Agent, que residem no banco de dados msdb:

  • SQLAgentUserRole

  • SQLAgentReaderRole

  • SQLAgentOperatorRole

Para obter informações sobre as permissões específicas que estão associadas a cada destas funções de banco de dados fixas, consulte Funções de banco de dados fixas do SQL Server Agent.

Somente os membros da função de servidor fixa sysadmin podem definir ou alterar o valor de @owner_login_name. Se usuários que não forem membros da função sysadmin definirem ou alterarem o valor de @owner_login_name, haverá falha na execução deste procedimento e um erro será retornado.

Exemplos

A. Adicionando um trabalho

Este exemplo adiciona um novo trabalho denominado NightlyBackups.

USE msdb ;
GO

EXEC dbo.sp_add_job
    @job_name = N'NightlyBackups' ;
GO

B. Adicionando um trabalho com informações de pager, email e net send

Este exemplo cria um trabalho denominado Ad hoc Sales Data Backup que notifica François Ajenstat (por pager, email ou mensagem pop-up de rede) se o trabalho falhar, excluindo o trabalho após a conclusão com êxito.

ObservaçãoObservação

Este exemplo supõe que já exista um operador denominado François Ajenstat e um logon nomeado françoisa.

USE msdb ;
GO

EXEC dbo.sp_add_job
    @job_name = N'Ad hoc Sales Data Backup', 
    @enabled = 1,
    @description = N'Ad hoc backup of sales data',
    @owner_login_name = N'françoisa',
    @notify_level_eventlog = 2,
    @notify_level_email = 2,
    @notify_level_netsend = 2,
    @notify_level_page = 2,
    @notify_email_operator_name = N'François Ajenstat',
    @notify_netsend_operator_name = N'François Ajenstat', 
    @notify_page_operator_name = N'François Ajenstat',
    @delete_level = 1 ;
GO