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 rubrique Conventions de la 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. 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. 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. step_idest de type int et n'a pas de valeur par défaut.

  • [ @step_name =] 'step_name'
    Nouveau nom de l'étape. 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. subsystem est de type nvarchar(40), avec NULL comme valeur par défaut.

  • [ @command =] 'command'
    Commande(s) à exécuter via subsystem. 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

    Passer à 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. 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. fail_action est de type tinyint, avec NULL comme valeur par défaut ; l'argument 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. 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. databaseest 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. user* *est de type sysname, avec NULL comme valeur par défaut.

  • [ @retry_attempts =] retry_attempts
    Nombre de tentatives à effectuer si l'étape échoue. retry_attemptsest de type int, avec NULL comme valeur par défaut.

  • [ @retry_interval =] retry_interval
    Nombre de minutes s'écoulant entre chaque tentative de reprise. 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 est enregistré le résultat de l'étape. 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. flags est de type int et peut prendre l'une des valeurs suivantes.

    Valeur

    Description

    0 (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 s'exécute l'étape de travail. 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 s'exécute l'étape de travail. 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

Voir aussi

Référence

sp_delete_jobstep (Transact-SQL)

sp_help_jobstep (Transact-SQL)

Procédures stockées système (Transact-SQL)

Concepts

Afficher ou modifier les travaux