Partager via


sp_update_jobstep (Transact-SQL)

Modifie la valeur d'une étape d'un travail qui est utilisé pour effectuer des activités automatisées.

Icône Lien de rubriqueConventions de syntaxe Transact-SQL

Syntaxe

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

Arguments

  • [ @job_id =] job_id
    Numéro d'identification du travail auquel l'étape appartient. L'argument job_idest de type uniqueidentifier, avec NULL comme valeur par défaut. Vous pouvez définir la valeur de job_id ou de job_name, mais pas les deux valeurs à la fois.

  • [ @job_name =] 'job_name'
    Nom du travail auquel l'étape appartient. L'argument job_nameest de type sysname, avec NULL comme valeur par défaut. Vous pouvez définir la valeur de job_id ou de job_name, mais pas les deux valeurs à la fois.

  • [ @step_id =] step_id
    Numéro d'identification de l'étape d'un travail à modifier. Il est impossible de modifier ce numéro. L'argument step_idest de type int, sans valeur par défaut.

  • [ @step_name =] 'step_name'
    Nouveau nom de l'étape. L'argument step_nameest de type sysname, avec NULL comme valeur par défaut.

  • [ @subsystem =] 'subsystem'
    Sous-système utilisé par l'Agent Microsoft SQL Server pour exécuter command. L'argument subsystem est de type nvarchar(40), avec NULL comme valeur par défaut.

  • [ @command =] 'command'
    Commande(s) à exécuter via subsystem. L'argument command est de type nvarchar(max), avec NULL comme valeur par défaut.

  • [ @additional_parameters =] 'parameters'
    Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

  • [ @cmdexec_success_code =] success_code
    Valeur retournée par une commande du sous-système CmdExec pour indiquer que l'argument command a été exécuté avec succès. success_code est de type int, avec NULL comme valeur par défaut.

  • [ @on_success_action =] success_action
    Action à exécuter si l'étape réussit. L'argument success_action est de type tinyint, avec NULL comme valeur par défaut ; il peut prendre l'une des valeurs suivantes :

    Valeur

    Description (action)

    1

    Sortie avec succès

    2

    Sortie avec échec

    3

    Passage à l'étape suivante

    4

    Passage à l'étape success_step_id.

  • [ @on_success_step_id =] success_step_id
    Numéro d'identification de l'étape du travail à exécuter si l'étape se déroule correctement et que la valeur de success_action est 4. L'argument success_step_id est de type int, avec NULL comme valeur par défaut.

  • [ @on_fail_action =] fail_action
    Action à exécuter si l'étape échoue. L'argument fail_action est de type tinyint, avec NULL comme valeur par défaut ; il peut prendre l'une des valeurs suivantes.

    Valeur

    Description (action)

    1

    Sortie avec succès

    2

    Sortie avec échec

    3

    Passage à l'étape suivante

    4

    Passage à l'étape fail_step_id.

  • [ @on_fail_step_id =] fail_step_id
    Numéro d'identification de l'étape du travail à exécuter si l'étape échoue et que la valeur de fail_action est 4. L'argument fail_step_id est de type int, avec NULL comme valeur par défaut.

  • [ @server =] 'server'
    Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie. server est de type nvarchar(128), avec NULL comme valeur par défaut.

  • [ @database_name =] 'database'
    Nom de la base de données dans laquelle l'étape Transact-SQL doit être exécutée. L'argument database est de type sysname. Les noms placés entre crochets ([ ]) ne sont pas autorisés. La valeur par défaut est NULL.

  • [ @database_user_name =] 'user'
    Nom du compte d'utilisateur à utiliser lors de l'exécution d'une étape Transact-SQL. L'argument userest de type sysname, avec NULL comme valeur par défaut.

  • [ @retry_attempts =] retry_attempts
    Nombre de tentatives de reprises à effectuer en cas d'échec de cette étape. L'argument retry_attemptsest de type int, avec NULL comme valeur par défaut.

  • [ @retry_interval =] retry_interval
    Durée en minutes séparant deux tentatives de reprises. L'argument retry_interval est de type int, avec NULL comme valeur par défaut.

  • [ @os_run_priority =] run_priority
    Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

  • [ @output_file_name =] 'file_name'
    Nom du fichier dans lequel la sortie de cette étape est enregistrée. L'argument file_name est de type nvarchar(200), avec NULL comme valeur par défaut. Ce paramètre est valide uniquement avec les commandes fonctionnant dans les sous-systèmes Transact-SQL ou CmdExec.

    Pour redéfinir la valeur de l'argument output_file_name à NULL, vous devez définir cette valeur avec une chaîne vide (' ') ou avec une chaîne ne contenant que des espaces, mais vous ne pouvez pas utiliser la fonction CHAR(32). Vous pouvez par exemple définir cet argument avec une chaîne vide comme suit :

    @output_file_name = ' '

  • [ @flags =] flags
    Option contrôlant le comportement. L'argument flags est de type int et peut prendre l'une des valeurs suivantes :

    Valeur

    Description

    0 (valeur par défaut)

    Écrasement du fichier de sortie.

    2

    Ajout au fichier de sortie

    4

    Écriture de la sortie de l'étape d'un travail Transact-SQL dans l'historique des étapes.

    8

    Écriture du journal dans la table (remplace l'historique existant)

    16

    Écriture du journal dans la table (s'ajoute à l'historique existant)

  • [ @proxy_id= ] proxy_id
    Numéro d'identification du proxy sous lequel l'étape d'un travail s'exécute. L'argument proxy_id est de type int, avec NULL comme valeur par défaut. Si aucune valeur proxy_id, proxy_name et user_name n'est spécifiée, l'étape du travail s'exécute sous le compte du service pour l'Agent SQL Server.

  • [ @proxy_name= ] 'proxy_name'
    Nom du proxy sous lequel l'étape d'un travail s'exécute. L'argument proxy_name est de type sysname, avec NULL comme valeur par défaut. Si aucune valeur proxy_id, proxy_name et user_name n'est spécifiée, l'étape du travail s'exécute sous le compte du service pour l'Agent SQL Server.

Valeurs des codes de retour

0 (succès) ou 1 (échec)

Notes

La procédure sp_update_jobstep doit être exécutée à partir de la base de données msdb.

La mise à jour de l'étape d'un travail incrémente le numéro de version de ce travail.

Autorisations

Seuls les membres du rôle de serveur fixe sysadmin peuvent exécuter cette procédure stockée. Les autres utilisateurs doivent disposer de l'un des rôles de base de données fixes SQL Server Agent suivants dans la base de données msdb.

  • SQLAgentUserRole

  • SQLAgentReaderRole

  • SQLAgentOperatorRole

Pour en savoir plus sur les autorisations de ces rôles, consultez Rôles de base de données fixes de l'Agent SQL Server.

Seuls les membres du rôle sysadmin peuvent mettre à jour une étape de travail appartenant à un autre utilisateur.

Si l'étape d'un travail nécessite un accès à un proxy, le créateur de l'étape doit avoir accès au proxy pour l'étape du travail. Tous les sous-systèmes, excepté Transact-SQL, requièrent un compte proxy. Les membres de sysadmin ont accès à tous les serveurs proxy et ils peuvent utiliser le compte de service SQL Server Agent pour le proxy.

Exemple

L'exemple suivant modifie le nombre de tentatives de reprises pour la première étape du travail Weekly Sales Data Backup. À la fin de l'exemple, ce nombre s'élève à 10.

USE msdb ;
GO

EXEC dbo.sp_update_jobstep
    @job_name = N'Weekly Sales Data Backup',
    @step_id = 1,
    @retry_attempts = 10 ;
GO