Partilhar via


sp_update_jobstep (Transact-SQL)

Altera a configuração para uma etapa em um trabalho que é usado para executar atividades automatizadas.

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

Sintaxe

sp_update_jobstep 
     {   [@job_id =] job_id 
       | [@job_name =] 'job_name' } ,
     [@step_id =] step_id
     [ , [@step_name =] 'step_name' ]
     [ , [@subsystem =] 'subsystem' ] 
     [ , [@command =] 'command' ]
     [ , [@additional_parameters =] 'parameters' ]
     [ , [@cmdexec_success_code =] success_code ]
     [ , [@on_success_action =] success_action ] 
     [ , [@on_success_step_id =] success_step_id ]
          [ , [@on_fail_action =] fail_action ] 
          [ , [@on_fail_step_id =] fail_step_id ]
     [ , [@server =] 'server' ] 
     [ , [@database_name =] 'database' ]
     [ , [@database_user_name =] 'user' ] 
     [ , [@retry_attempts =] retry_attempts ]
     [ , [@retry_interval =] retry_interval ] 
     [ , [@os_run_priority =] run_priority ]
     [ , [@output_file_name =] 'file_name' ] 
     [ , [@flags =] flags ]
     [ ,  {   [ @proxy_id = ] proxy_id 
            | [ @proxy_name = ] 'proxy_name' } 

Argumentos

  • [ @job_id =] job_id
    O número de identificação do trabalho ao qual a etapa pertence. job_id é uniqueidentifier, com um padrão de NULL. É necessário especificar a job_id ou o job_name, mas não é possível especificar ambos ao mesmo tempo.

  • [ @job_name =] 'job_name'
    O nome do trabalho ao qual a etapa pertence. job_name é sysname, com um padrão de NULL. É necessário especificar a job_id ou o job_name, mas não é possível especificar ambos ao mesmo tempo.

  • [ @step_id =] step_id
    O número de identificação da etapa de trabalho que será modificado. Este número não pode ser alterado. step_id é int, sem padrão.

  • [ @step_name =] 'step_name'
    É um nome do novo para a etapa. step_name é sysname, com um padrão de NULL.

  • [ @subsystem =] 'subsystem'
    O subsistema usado pelo Microsoft SQL Server Agent para executar command. subsystem é nvarchar(40), com um padrão de NULL.

  • [ @command =] 'command'
    O comando a ser executado através de subsystem. command é nvarchar(max), com um padrão de NULL.

  • [ @additional_parameters =] 'parameters'
    Identificado apenas para fins informativos. Sem suporte. A compatibilidade futura não está garantida.

  • [ @cmdexec_success_code =] success_code
    O valor retornado por um comando de subsistema CmdExec para indicar que command foi executado com êxito. success_code é int, com um padrão de NULL.

  • [ @on_success_action =] success_action
    A ação que será executada se a etapa tiver êxito. success_action é tinyint, com um padrão de NULL ou pode ser um destes valores.

    Valor

    Descrição (ação)

    1

    Sair com êxito.

    2

    Sair com falha.

    3

    Ir para a próxima etapa.

    4

    Ir para a etapa success_step_id.

  • [ @on_success_step_id =] success_step_id
    O número de identificação da etapa que será executada neste trabalho se a etapa for bem-sucedida e success_action for 4. success_step_id é int, com um padrão de NULL.

  • [ @on_fail_action =] fail_action
    A ação que será executada se a etapa falhar. fail_action é tinyint, com um padrão de NULL ou pode ser um destes valores.

    Valor

    Descrição (ação)

    1

    Sair com êxito.

    2

    Sair com falha.

    3

    Ir para a próxima etapa.

    4

    Ir para a etapa fail_step_id.

  • [ @on_fail_step_id =] fail_step_id
    O número de identificação da etapa que será executada neste trabalho se a etapa falhar e fail_action for 4. fail_step_id é int, com um padrão de NULL.

  • [ @server =] 'server'
    Identificado apenas para fins informativos. Sem suporte. A compatibilidade futura não está garantida. server é nvarchar(128), com um padrão de NULL.

  • [ @database_name =] 'database'
    O nome do banco de dados no qual uma etapa do Transact-SQL será executada. database é sysname. Os nomes entre colchetes ([ ]) não são permitidos. O valor padrão é NULL.

  • [ @database_user_name =] 'user'
    O nome da conta de usuário a ser usada ao executar uma etapa do Transact-SQL. user é sysname, com um padrão de NULL.

  • [ @retry_attempts =] retry_attempts
    O número de tentativas a serem usadas se esta etapa falhar. retry_attemptsé int, com um padrão de NULL.

  • [ @retry_interval =] retry_interval
    A quantidade de tempo, em minutos, entre tentativas. retry_interval é int, com um padrão de NULL.

  • [ @os_run_priority =] run_priority
    Identificado apenas para fins informativos. Sem suporte. A compatibilidade futura não está garantida.

  • [ @output_file_name =] 'file_name'
    O nome do arquivo no qual o resultado desta etapa será gravado. file_name é nvarchar(200), com um padrão de NULL. Este parâmetro é válido somente com comandos executados nos subsistemas do Transact-SQL ou CmdExec.

    Para definir output_file_name novamente como NULL, você deve definir output_file_name com uma cadeia vazia (' ') ou como um cadeia de caracteres em branco, mas você não pode usar a função CHAR(32). Por exemplo, defina este argumento como uma cadeia de caracteres vazios como segue:

    @output_file_name = ' '

  • [ @flags =] flags
    Uma opção que controla o comportamento. flags é int e pode ser um destes valores.

    Valor

    Descrição

    0 (padrão)

    Substitui o arquivo de saída.

    2

    Anexa a um arquivo de saída

    4

    Grava a saída da etapa de trabalho do Transact-SQL no histórico de etapas

    8

    Grava o log na tabela (substitui o histórico existente)

    16

    Grava o log na tabela (anexa ao histórico existente)

  • [ @proxy_id= ] proxy_id
    O número do identificador do proxy com o qual a etapa de trabalho é executada. proxy_id é do tipo int, com um padrão de NULL. Se nenhuma proxy_id, nenhum proxy_name e nenhum user_name forem especificados, a etapa de trabalho será executada como a conta de serviço para o Agente SQL Server.

  • [ @proxy_name= ] 'proxy_name'
    O nome do proxy com o qual a etapa de trabalho é executada. proxy_name é do tipo sysname, com um padrão NULL. Se nenhuma proxy_id, nenhum proxy_name e nenhum user_name forem especificados, a etapa de trabalho será executada como a conta de serviço para o SQL Server Agent.

Valores de código de retorno

0 (êxito) ou 1 (falha)

Comentários

sp_update_jobstep deve ser executado do banco de dados msdb.

A atualização de uma etapa de trabalho incrementa o número de versão do trabalho.

Permissões

Por padrão, os membros da função de servidor fixa sysadmin podem executar este procedimento armazenado. Deve ser concedida a outros usuários uma das seguintes funções de banco de dados fixas do Agente do SQL Server no banco de dados msdb:

  • SQLAgentUserRole

  • SQLAgentReaderRole

  • SQLAgentOperatorRole

Para obter detalhes sobre as permissões dessas funções, consulte Funções de banco de dados fixas do SQL Server Agent.

Somente os membros de sysadmin podem atualizar uma etapa de trabalho pertencente a outro usuário.

Se a etapa de trabalho requer acesso a um proxy, o criador da etapa de trabalho deve ter acesso ao proxy para a etapa de trabalho. Todos os subsistemas, menos o Transact-SQL, requerem uma conta proxy. Os membros do sysadmin têm acesso a todos os proxies e podem usar a conta de serviço do SQL Server Agent para o proxy.

Exemplos

O exemplo a seguir altera o número de tentativas da primeira etapa do trabalho Weekly Sales Data Backup. Depois de executar este exemplo, o número de tentativas será 10.

USE msdb ;
GO

EXEC dbo.sp_update_jobstep
    @job_name = N'Weekly Sales Data Backup',
    @step_id = 1,
    @retry_attempts = 10 ;
GO