jobs.sp_update_jobstep (travaux élastiques Azure) (Transact-SQL)

S’applique à : Azure SQL Database

Modifie une étape de travail dans un travail existant dans le service Travaux élastiques Azure pour Azure SQL Database. Utilisez jobs.sp_add_jobstep pour ajouter des étapes de travail à un travail.

Cette procédure stockée partage le nom d’un sp_update_jobstep objet similaire dans SQL Server pour le service SQL Server Agent. Pour plus d’informations sur la version de SQL Server Agent, consultez sp_update_jobstep.

Conventions de la syntaxe Transact-SQL

Syntaxe

[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 ]

Arguments

@job_name

Nom du travail auquel l'étape appartient. job_name est nvarchar(128).

@step_id

Numéro d'identification de l'étape d'un travail à modifier. Vous devez spécifier step_id ou step_name . step_id est un int.

@step_name

Nom de l’étape à modifier. Vous devez spécifier step_id ou step_name . step_name est nvarchar(128).

@new_id

Le nouveau numéro d’identification de séquence pour l’étape de travail. Les numéros d’identification d’étape commencent à 1 et augmentent sans intervalle. Si une étape est réorganisée, les autres étapes seront automatiquement renumérotées.

@new_name

Nouveau nom de l'étape. new_name est nvarchar(128).

@command_type

Type de commande exécuté par cette étape de travail. command_type est nvarchar(50), avec une valeur TSqlpar défaut , ce qui signifie que la valeur du paramètre @command_type est un script T-SQL.

Si elle est spécifiée, la valeur doit être TSql.

@command_source

Type d’emplacement de stockage de la commande. command_source est nvarchar(50), avec une valeur par défaut , Inlinece qui signifie que la valeur du paramètre @command est le texte littéral de la commande.

Si elle est spécifiée, la valeur doit être Inline.

@command

Script T-SQL valide à exécuter par cette étape de travail. la commande est nvarchar(max), avec la valeur par défaut NULL.

@credential_name

Nom des informations d’identification délimitées à la base de données stockées dans cette base de données de contrôle de travail utilisée pour se connecter à chacune des bases de données cibles au sein du groupe cible lorsque cette étape est exécutée. credential_name est nvarchar(128).

Lorsque vous utilisez l’authentification Microsoft Entra (anciennement Azure Active Directory), omettez le paramètre @credential_name , qui ne doit être fourni que lors de l’utilisation d’informations d’identification délimitées à la base de données.

@target_group_name

Nom du groupe cible qui contient les bases de données cibles sur laquelle l’étape de travail sera exécutée. target_group_name est nvarchar(128).

@initial_retry_interval_seconds

Le délai avant la première nouvelle tentative, si l’étape de travail échoue lors de la tentative d’exécution initiale. initial_retry_interval_seconds est int, avec la valeur par défaut 1.

@maximum_retry_interval_seconds

Délai maximal entre les nouvelles tentatives. Si le délai entre les nouvelles tentatives augmente plus grand que cette valeur, il est limité à cette valeur à la place. maximum_retry_interval_seconds est int, avec la valeur par défaut 120.

@retry_interval_backoff_multiplier

Le multiplicateur à appliquer au délai de nouvelle tentative si plusieurs tentatives d’exécution d’une étape de travail échouent. Par exemple, si la première nouvelle tentative avait un délai de 5 secondes et que le multiplicateur d’interruption est 2,0, la deuxième tentative aura un délai de 10 secondes et la troisième un délai de 20 secondes. retry_interval_backoff_multiplier est le type de données réel, avec la valeur par défaut 2.0.

@retry_attempts

Nombre de nouvelles tentatives d’exécution si la tentative initiale échoue. Par exemple, si la valeur retry_attempts est 10, il y aura 1 tentative initiale et 10 nouvelles tentatives, ce qui donne un total de 11 tentatives. Si la tentative finale de nouvelle tentative échoue, l’exécution du travail se termine par un lifecycle enregistrement Failed dans jobs.job_executions. retry_attempts est int, avec la valeur par défaut 10.

@step_timeout_seconds

La durée maximale autorisée pour l’étape à exécuter. Si cette durée est dépassée, l’exécution du travail se termine par un lifecycle enregistrement TimedOut dans jobs.job_executions. step_timeout_seconds est int, avec la valeur par défaut de 43 200 secondes (12 heures).

@output_type

Si ce n’est pas NULLle cas, le type de destination dans lequel le premier jeu de résultats de la commande est écrit. Pour rétablir la valeur de output_typeNULL, définissez la valeur de ce paramètre sur '' (chaîne vide). output_type est nvarchar(50), avec la valeur par défaut NULL.

Si elle est spécifiée, la valeur doit être SqlDatabase.

@output_credential_name

Si ce n’est pas NULLle cas, le nom des informations d’identification délimitées à la base de données de base de données utilisée pour se connecter à la base de données de destination de sortie. Doit être spécifié si output_type est égal SqlDatabaseà . Pour rétablir la valeur de output_credential_nameNULL, définissez la valeur de ce paramètre sur '' (chaîne vide). output_credential_name est nvarchar(128), avec une valeur par défaut de NULL.

Lorsque vous utilisez l’authentification Microsoft Entra (anciennement Azure Active Directory), omettez le paramètre @output_credential_name , qui ne doit être fourni que lors de l’utilisation d’informations d’identification délimitées à la base de données.

@output_server_name

Si ce n’est pas NULLle cas, le nom DNS complet du serveur qui contient la base de données de destination de sortie, par exemple @output_server_name = 'server1.database.windows.net'. Doit être spécifié si output_type est égal SqlDatabaseà . Pour rétablir la valeur de output_server_name NULL, définissez la valeur de ce paramètre sur '' (chaîne vide). output_server_name est nvarchar(256), avec la valeur par défaut NULL.

@output_database_name

Si ce n’est pas NULLle cas, nom de la base de données qui contient la table de destination de sortie. Doit être spécifié si output_type est égal SqlDatabaseà . Pour rétablir la valeur de output_database_nameNULL, définissez la valeur de ce paramètre sur '' (chaîne vide). output_database_name est nvarchar(128), avec la valeur par défaut NULL.

@output_schema_name

Si ce n’est pas NULLle cas, nom du schéma SQL qui contient la table de destination de sortie. Si output_type est égalSqlDatabase, la valeur par défaut est dbo . Pour rétablir la valeur de output_schema_nameNULL, définissez la valeur de ce paramètre sur '' (chaîne vide). output_schema_name est nvarchar(128).

@output_table_name

Si ce n’est pas NULLle cas, le nom de la table dans laquelle le premier jeu de résultats de la commande sera écrit. Si la table n’existe pas encore, elle sera créée selon le schéma du jeu de résultats retourné. Doit être spécifié si output_type est égal SqlDatabaseà . Pour rétablir la valeur de output_server_nameNULL, définissez la valeur de ce paramètre sur '' (chaîne vide). output_table_name est nvarchar(128), avec la valeur NULLpar défaut .

Si vous spécifiez un output_table_name, les informations d’identification de l’agent de travail ou de l’étendue de la base de données doivent disposer des autorisations nécessaires pour CREATE TABLE et INSERT data into the table.

@job_version SORTIE

Paramètre de sortie auquel sera assigné le nouveau numéro de version de travail. job_version est int.

@max_parallelism SORTIE

Le niveau maximal de parallélisme par pool élastique. S’il est défini, l’étape de travail sera limitée à l’exécution sur un nombre maximum de ces nombreuses bases de données par pool élastique. Ceci s’applique à chaque pool élastique qui est directement inclus dans le groupe cible ou qui se trouve au sein d’un serveur inclus dans le groupe cible. Pour rétablir la valeur de max_parallelismNULL, définissez la valeur -1de ce paramètre sur . max_parallelism est int.

Valeurs des codes de retour

0 (réussite) or 1 (échec).

Notes

Les exécutions en cours du travail ne seront pas affectées. En jobs.sp_update_jobstep cas de réussite, le numéro de version du travail est incrémenté. La prochaine fois que le travail sera exécuté, la nouvelle version sera utilisée.

Autorisations

Par défaut, les membres du rôle serveur fixe sysadmin peuvent exécuter cette procédure stockée. Seuls des membres de sysadmin peuvent utiliser cette procédure stockée pour modifier les attributs des travaux qui appartiennent à d’autres utilisateurs.

Exemples

Commande Mettre à jour une étape de travail élastique

Cet exemple met à jour la commande T-SQL d’une étape de travail élastique existante. Le script T-SQL ajoute une étape de travail pour créer une table s’il n’existe pas.

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