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 TSql
par 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 , Inline
ce 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 NULL
le 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 NULL
le 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 NULL
le 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 NULL
le 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 NULL
le 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 NULL
le 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 NULL
par 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 -1
de 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';