Partilhar via


jobs.sp_update_jobstep (Azure Elastic Jobs) (Transact-SQL)

Aplica-se a: Banco de Dados SQL do Azure

Modifica uma etapa de trabalho em um trabalho existente no serviço de Trabalhos Elásticos do Azure para Banco de Dados SQL do Azure. Use jobs.sp_add_jobstep para adicionar etapas de trabalho a um trabalho.

Esse procedimento armazenado compartilha o nome de sp_update_jobstep com um objeto semelhante no SQL Server para o serviço SQL Server Agent. Para obter informações sobre a versão do SQL Server Agent, consulte sp_update_jobstep.

Convenções de sintaxe de Transact-SQL

Sintaxe

[jobs].sp_update_jobstep [ @job_name = ] 'job_name'
     [ , [ @step_id = ] step_id ]
     [ , [ @step_name = ] 'step_name' ]
     [ , [ @new_id = ] new_id ]
     [ , [ @new_name = ] 'new_name' ]
     [ , [ @command_type = ] 'command_type' ]
     [ , [ @command_source = ] 'command_source' ]
     , [ @command = ] 'command'
     [ , [ @credential_name = ] 'credential_name' ]
     , [ @target_group_name = ] 'target_group_name'
     [ , [ @initial_retry_interval_seconds = ] initial_retry_interval_seconds ]
     [ , [ @maximum_retry_interval_seconds = ] maximum_retry_interval_seconds ]
     [ , [ @retry_interval_backoff_multiplier = ] retry_interval_backoff_multiplier ]
     [ , [ @retry_attempts = ] retry_attempts ]
     [ , [ @step_timeout_seconds = ] step_timeout_seconds ]
     [ , [ @output_type = ] 'output_type' ]
     [ , [ @output_credential_name = ] 'output_credential_name' ]
     [ , [ @output_server_name = ] 'output_server_name' ]
     [ , [ @output_database_name = ] 'output_database_name' ]
     [ , [ @output_schema_name = ] 'output_schema_name' ]
     [ , [ @output_table_name = ] 'output_table_name' ]
     [ , [ @job_version = ] job_version OUTPUT ]
     [ , [ @max_parallelism = ] max_parallelism ]

Argumentos

@job_name

O nome do trabalho ao qual a etapa pertence. job_name é nvarchar(128).

@step_id

O número de identificação da etapa de trabalho que será modificado. Deve ser especificado step_id ou step_name . step_id é um int.

@step_name

O nome da etapa a ser modificada. Deve ser especificado step_id ou step_name . step_name é nvarchar(128).

@new_id

O novo número de identificação de sequência da etapa de trabalho. Os números de identificação de etapa começam em 1 e são incrementados sem lacunas. Se uma etapa for reordenada, as outras etapas serão renumeradas automaticamente.

@new_name

O novo nome da etapa. new_name é nvarchar(128).

@command_type

O tipo de comando que é executado por esta etapa de trabalho. command_type é nvarchar(50), com um valor padrão de TSql, o que significa que o valor do parâmetro @command_type é um script T-SQL.

Se especificado, o valor deve ser TSql.

@command_source

O tipo do local em que o comando é armazenado. command_source é nvarchar(50), com um valor padrão de Inline, o que significa que o valor do parâmetro @command é o texto literal do comando.

Se especificado, o valor deve ser Inline.

@command

O script T-SQL válido que deve ser executado por esta etapa de trabalho. é nvarchar(max), com um padrão de NULL.

@credential_name

O nome da credencial no escopo do banco de dados armazenada nesse banco de dados de controle de trabalho que é usado para se conectar a cada um dos bancos de dados de destino dentro do grupo de destino quando essa etapa é executada. credential_name é nvarchar(128).

Ao usar a autenticação do Microsoft Entra (anteriormente Azure Active Directory), omita o parâmetro @credential_name , que só deve ser fornecido ao usar credenciais no escopo do banco de dados.

@target_group_name

O nome do grupo de destino que contém os bancos de dados de destino nos quais a etapa de trabalho será executada. target_group_name é nvarchar(128).

@initial_retry_interval_seconds

O atraso antes da primeira tentativa de repetição, se a etapa de trabalho falhar na tentativa de execução inicial. initial_retry_interval_seconds é int, com valor padrão de 1.

@maximum_retry_interval_seconds

O atraso máximo entre as tentativas repetição. Se o atraso entre as tentativas aumentar maior do que esse valor, ele será limitado a esse valor. maximum_retry_interval_seconds é int, com valor padrão de 120.

@retry_interval_backoff_multiplier

O multiplicador a ser aplicado ao atraso de repetição se várias tentativas de execução de etapa de trabalho falharem. Por exemplo, se a primeira repetição tiver um atraso de 5 segundos e o multiplicador de retirada for 2.0, a segunda repetição terá um atraso de 10 segundos e a terceira, de 20 segundos. retry_interval_backoff_multiplier é o tipo de dados real, com valor padrão de 2.0.

@retry_attempts

O número de vezes que a execução deverá ser repetida quando a tentativa inicial falhar. Por exemplo, se o valor retry_attempts for 10, haverá 1 tentativa inicial e 10 tentativas de repetição, totalizando 11 tentativas. Se a tentativa final de repetição falhar, a execução do trabalho será encerrada com um lifecycle de Failed registrado em jobs.job_executions. retry_attempts é int, com valor padrão de 10.

@step_timeout_seconds

O período de tempo máximo permitido para a execução da etapa. Se esse tempo for excedido, a execução do trabalho será encerrada com um lifecycle de TimedOut registrado em jobs.job_executions. step_timeout_seconds é int, com valor padrão de 43.200 segundos (12 horas).

@output_type

Caso contrário NULL, o tipo de destino no qual o primeiro conjunto de resultados do comando é gravado. Para redefinir o valor de output_type de volta para NULL, defina o valor desse parâmetro como '' (cadeia de caracteres vazia). output_type é nvarchar(50), com um padrão de NULL.

Se especificado, o valor deve ser SqlDatabase.

@output_credential_name

Caso contrário NULL, o nome da credencial no escopo do banco de dados usada para se conectar ao banco de dados de destino de saída. Deve ser especificado se output_type for igual a SqlDatabase. Para redefinir o valor de output_credential_name de volta para NULL, defina o valor desse parâmetro como '' (cadeia de caracteres vazia). output_credential_name é nvarchar(128), com um valor padrão de NULL.

Ao usar a autenticação do Microsoft Entra (anteriormente Azure Active Directory), omita o parâmetro @output_credential_name , que só deve ser fornecido ao usar credenciais no escopo do banco de dados.

@output_server_name

Caso contrário NULL, o nome DNS totalmente qualificado do servidor que contém o banco de dados de destino de saída, por exemplo, @output_server_name = 'server1.database.windows.net'. Deve ser especificado se output_type for igual a SqlDatabase. Para redefinir o valor de output_server_name de volta para NULL, defina o valor desse parâmetro como '' (cadeia de caracteres vazia). output_server_name é nvarchar(256), com um padrão de NULL.

@output_database_name

Caso contrário NULL, o nome do banco de dados que contém a tabela de destino de saída. Deve ser especificado se output_type for igual a SqlDatabase. Para redefinir o valor de output_database_name de volta para NULL, defina o valor deste parâmetro como '' (cadeia de caracteres vazia). output_database_name é nvarchar(128), com um padrão de NULL.

@output_schema_name

Caso contrário NULL, o nome do esquema SQL que contém a tabela de destino de saída. Se output_type for SqlDatabaseigual a , o valor padrão é dbo. Para redefinir o valor de output_schema_name de volta para NULL, defina o valor deste parâmetro como '' (cadeia de caracteres vazia). output_schema_name é nvarchar(128).

@output_table_name

Caso contrário NULL, o nome da tabela na qual o primeiro conjunto de resultados do comando será gravado. Se a tabela ainda não existir, ela será criada com base no esquema de conjunto de resultados retornado. Deve ser especificado se output_type for igual a SqlDatabase. Para redefinir o valor de output_server_name de volta para NULL, defina o valor desse parâmetro como '' (cadeia de caracteres vazia). output_table_name é nvarchar(128), com um valor padrão de NULL.

Se especificar um output_table_name, a UMI do Agente de Trabalho ou a credencial no escopo do banco de dados deverá receber as permissões necessárias para CREATE TABLE e INSERT dados na tabela.

@job_version SAÍDA

Parâmetro de saída que será atribuído ao novo número de versão do trabalho. job_version é int.

@max_parallelism SAÍDA

O nível máximo de paralelismo por pool elástico. Se estiver definido, a execução da etapa de trabalho será restrita apenas a esse número máximo de bancos de dados por pool elástico. Isso se aplica a cada pool elástico incluído diretamente no grupo de destino ou a pools elásticos dentro de um servidor incluído no grupo de destino. Para redefinir o valor de max_parallelism de volta para NULL, defina o valor desse parâmetro como -1. max_parallelism é int.

Valores do código de retorno

0 (sucesso) ou 1 (falha).

Comentários

As execuções do trabalho em andamento não serão afetadas. Quando jobs.sp_update_jobstep bem-sucedido, o número da versão do trabalho é incrementado. Na próxima vez em que o trabalho for executado, a nova versão será usada.

Permissões

Por padrão, os membros da função de servidor fixa sysadmin podem executar este procedimento armazenado. Somente os membros da função sysadmin podem usar esse procedimento armazenado para editar os atributos dos trabalhos pertencentes a outros usuários

Exemplos

Comando de atualização de uma etapa de trabalho elástica

Este exemplo atualiza o comando T-SQL de uma etapa de trabalho elástica existente. O script T-SQL adiciona uma etapa de trabalho para criar uma tabela se ela não existir.

--Connect to the job database specified when creating the elastic job agent

-- Add job step to create a table if it does not exist
EXEC jobs.sp_update_jobstep @job_name = 'CreateTableTest',
@command = N'IF NOT EXISTS (SELECT * FROM sys.tables WHERE object_id = object_id(''Test''))
CREATE TABLE [dbo].[Test]([TestId] [int] NOT NULL);',
@target_group_name = 'PoolGroup';