Share via


jobs.sp_update_jobstep (trabajos elásticos de Azure) (Transact-SQL)

Se aplica a:Azure SQL Database

Modifica un paso de trabajo en un trabajo existente en el servicio Trabajos elásticos de Azure para Azure SQL Database. Use jobs.sp_add_jobstep para agregar pasos de trabajo a un trabajo.

Este procedimiento almacenado comparte el nombre de sp_update_jobstep con un objeto similar en SQL Server para el servicio Agente SQL Server. Para obtener información sobre la versión de Agente SQL Server, consulte sp_update_jobstep (Transact-SQL).

Convenciones de sintaxis de Transact-SQL

Sintaxis

[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

El nombre del trabajo al que pertenece el paso. job_name es nvarchar(128).

@step_id

Número de identificación del paso de trabajo que va a modificarse. Se deben especificar step_id o step_name . step_id es un valor int.

@step_name

Nombre del paso que se va a modificar. Se deben especificar step_id o step_name . step_name es nvarchar(128).

@new_id

Nuevo número de identificación de secuencia del paso de trabajo. Los números de identificación de pasos se inician en 1 e incrementan sin interrupciones. Si un paso se reordena, los otros pasos se renumerarán automáticamente.

@new_name

Nuevo nombre del paso. new_name es nvarchar(128).

@command_type

Tipo de comando ejecutado por este paso de trabajo. command_type es nvarchar(50), con un valor predeterminado de TSql, lo que significa que el valor del parámetro @command_type es un script T-SQL.

Si se especifica, el valor debe ser TSql.

@command_source

Tipo de ubicación donde se almacena el comando. command_source es nvarchar(50), con un valor predeterminado de Inline, lo que significa que el valor del parámetro @command es el texto literal del comando.

Si se especifica, el valor debe ser Inline.

@command

Script T-SQL válido que va a ejecutar este paso de trabajo. command es nvarchar(max), con un valor predeterminado de NULL.

@credential_name

Nombre de la credencial de ámbito de base de datos almacenada en esta base de datos de control de trabajo que se usa para conectarse a cada una de las bases de datos de destino del grupo de destino cuando se ejecuta este paso. credential_name es nvarchar(128).

Al usar la autenticación de Microsoft Entra (anteriormente Azure Active Directory), omita el parámetro @credential_name , que solo se debe proporcionar al usar credenciales con ámbito de base de datos.

@target_group_name

Nombre del grupo de destino que contiene las bases de datos de destino en las que se ejecutará el paso de trabajo. target_group_name es nvarchar(128).

@initial_retry_interval_seconds

Retraso que se producirá antes del primer reintento,si el paso de trabajo no se ejecuta correctamente en el intento de ejecución inicial. initial_retry_interval_seconds es int, con el valor predeterminado de 1.

@maximum_retry_interval_seconds

Retraso máximo entre los reintentos. Si el retraso entre los reintentos creciera por encima de este valor, se limitaría a este valor en su lugar. maximum_retry_interval_seconds es int, con el valor predeterminado de 120.

@retry_interval_backoff_multiplier

Multiplicador que se aplicará al retraso de reintentos si varios intentos de ejecución del paso de trabajo generan un error. Por ejemplo, si el primer reintento tuvo un retraso de 5 segundos y el multiplicador de retroceso es 2.0, el segundo reintento tendrá un retraso de 10 segundos y el tercero, de 20 segundos. retry_interval_backoff_multiplier es el tipo de datos real, con el valor predeterminado 2.0.

@retry_attempts

Número de veces que reintentará la ejecución si se produce un error en el intento inicial. Por ejemplo, si el valor de retry_attempts es 10, habrá 1 intento inicial y 10 reintentos, lo que dará un total de 11 intentos. Si se produce un error en el intento de reintento final, la ejecución del trabajo finalizará con un lifecycle de Failed registrado en jobs.job_executions. retry_attempts es int, con el valor predeterminado de 10.

@step_timeout_seconds

Cantidad máxima de tiempo permitida para la ejecución del paso. Si se supera este tiempo, la ejecución del trabajo finalizará con un lifecycle de TimedOut registrado en jobs.job_executions. step_timeout_seconds es int, con el valor predeterminado de 43 200 segundos (12 horas).

@output_type

Si no es NULL, el tipo de destino en el que se escribe el primer conjunto de resultados del comando. Para restablecer el valor de output_type a NULL, establezca el valor de este parámetro en "" (cadena vacía). output_type es nvarchar(50), con un valor predeterminado de NULL.

Si se especifica, el valor debe ser SqlDatabase.

@output_credential_name

Si no es NULL, el nombre de la credencial con ámbito de base de datos que se usa para conectarse a la base de datos de destino de salida. Debe especificarse si output_type es igual a SqlDatabase. Para restablecer el valor de output_credential_name a NULL, establezca el valor de este parámetro en "" (cadena vacía). output_credential_name es nvarchar(128), con un valor predeterminado de NULL.

Al usar la autenticación de Microsoft Entra (anteriormente Azure Active Directory), omita el parámetro @output_credential_name , que solo se debe proporcionar al usar credenciales con ámbito de base de datos.

@output_server_name

Si no es NULL, el nombre DNS completo del servidor que contiene la base de datos de destino de salida, por ejemplo, @output_server_name = 'server1.database.windows.net'. Debe especificarse si output_type es igual a SqlDatabase. Para restablecer el valor de output_server_name a NULL, establezca el valor de este parámetro en "" (cadena vacía). output_server_name es nvarchar(256), con un valor predeterminado de NULL.

@output_database_name

Si no es NULL, el nombre de la base de datos que contiene la tabla de destino de salida. Debe especificarse si output_type es igual a SqlDatabase. Para restablecer el valor de output_database_name a NULL, establezca el valor de este parámetro en "" (cadena vacía). output_database_name es nvarchar(128), con un valor predeterminado de NULL.

@output_schema_name

Si no es NULL, el nombre del esquema SQL que contiene la tabla de destino de salida. Si output_type es igual SqlDatabasea , el valor predeterminado es dbo . Para restablecer el valor de output_schema_name a NULL, establezca el valor de este parámetro en "" (cadena vacía). output_schema_name es nvarchar(128).

@output_table_name

Si no es NULL, el nombre de la tabla en la que se escribirá el primer conjunto de resultados del comando. Si la tabla no existe todavía, se creará de acuerdo con el esquema del conjunto de resultados devuelto. Debe especificarse si output_type es igual a SqlDatabase. Para restablecer el valor de output_server_name a NULL, establezca el valor de este parámetro en "" (cadena vacía). output_table_name es nvarchar(128), con un valor predeterminado de NULL.

Si especifica un output_table_name, se deben conceder permisos necesarios a la credencial de ámbito de base de datos o UMI del Agente de trabajo para CREAR TABLE e INSERTAR datos en la tabla.

@job_version SALIDA

Parámetro de salida al que se asignará el número de versión de trabajo nuevo. job_version es int.

@max_parallelism SALIDA

Nivel máximo de paralelismo por grupo elástico. Si está establecido, el paso de trabajo se restringirá para que solo se ejecute en un máximo de las bases de datos por grupo elástico. Esto se aplica a cada grupo elástico que se incluya directamente en el grupo de destino o a los grupos elásticos que se encuentren dentro de un servidor incluido en el grupo de destino. Para restablecer el valor de max_parallelism a NULL, establezca el valor -1de este parámetro en . max_parallelism es int.

Valores de código de retorno

0 (correcto) o 1 (error)

Observaciones

Las ejecuciones en curso del trabajo no se verán afectadas. Cuando jobs.sp_update_jobstep se ejecuta correctamente, se incrementa el número de versión del trabajo. La próxima vez que se ejecute el trabajo, se usará la nueva versión.

Permisos

De forma predeterminada, los miembros del rol fijo de servidor sysadmin pueden ejecutar este procedimiento almacenado. Solo los miembros de sysadmin pueden usar este procedimiento almacenado para editar los atributos de los trabajos que pertenecen a otros usuarios.

Ejemplos

Comando Actualizar de un paso de trabajo elástico

En este ejemplo se actualiza el comando T-SQL de un paso de trabajo elástico existente. El script T-SQL agrega un paso de trabajo para crear una tabla si no existe.

--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';