Compartilhar 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ópico Convenções da 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. Esse número não pode ser alterado. step_idé int, sem padrão.

  • [ @step_name =] 'step_name'
    É um novo nome 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 do 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 ter um destes valores.

    Value

    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 a ser executada se a etapa falhar. fail_action é tinyint, com um padrão de NULL, e pode ter um destes valores.

    Value

    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 executar uma etapa Transact-SQL. 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 Transact-SQL. user é sysname, com um padrão de NULL.

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

  • [ @retry_interval =] retry_interval
    A quantidade de tempo, em minutos, entre as novas 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 a saída desta etapa é 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 comportamento. flags é int e pode ter um destes valores.

    Value

    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 da ID 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 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.

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 SQL Server Agent 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

Consulte também

Referência

sp_delete_jobstep (Transact-SQL)

sp_help_jobstep (Transact-SQL)

Procedimentos armazenados do sistema (Transact-SQL)

Conceitos

Exibir ou modificar trabalhos