sp_add_job (Transact-SQL)

S’applique à : SQL Server Azure SQL Managed Instance

Ajoute un nouveau travail exécuté par le service SQL Agent.

Conventions de la syntaxe Transact-SQL

Important

Dans Azure SQL Managed Instance, la plupart, mais pas toutes les fonctionnalités SQL Server Agent sont actuellement prises en charge. Pour plus d’informations, consultez Différences T-SQL entre Azure SQL Managed Instance et SQL Server.

Syntaxe

  
sp_add_job [ @job_name = ] 'job_name'  
     [ , [ @enabled = ] enabled ]   
     [ , [ @description = ] 'description' ]   
     [ , [ @start_step_id = ] step_id ]   
     [ , [ @category_name = ] 'category' ]   
     [ , [ @category_id = ] category_id ]   
     [ , [ @owner_login_name = ] 'login' ]   
     [ , [ @notify_level_eventlog = ] eventlog_level ]   
     [ , [ @notify_level_email = ] email_level ]   
     [ , [ @notify_level_netsend = ] netsend_level ]   
     [ , [ @notify_level_page = ] page_level ]   
     [ , [ @notify_email_operator_name = ] 'email_name' ]   
          [ , [ @notify_netsend_operator_name = ] 'netsend_name' ]   
     [ , [ @notify_page_operator_name = ] 'page_name' ]   
     [ , [ @delete_level = ] delete_level ]   
     [ , [ @job_id = ] job_id OUTPUT ]   

Arguments

[ @job_name = ] 'job_name' Nom du travail. Le nom doit être unique et ne peut pas contenir le caractère percent (%). job_nameest nvarchar(128), sans valeur par défaut.

[ @enabled = ] enabled Indique l’état du travail ajouté. enabledest tinyint, avec une valeur par défaut de 1 (activé). Si la valeur est 0, le travail n’est pas activé et ne s’exécute pas selon sa planification ; toutefois, il peut être exécuté manuellement.

[ @description = ] 'description' Description du travail. description est nvarchar(512), avec la valeur null par défaut. Si la description est omise, « Aucune description disponible » est utilisé.

[ @start_step_id = ] step_id Numéro d’identification de la première étape à exécuter pour le travail. step_idest int, avec une valeur par défaut de 1.

[ @category_name = ] 'category' Catégorie du travail. categoryest sysname, avec une valeur par défaut NULL.

[ @category_id = ] category_id Mécanisme indépendant de la langue pour spécifier une catégorie de travail. category_idest int, avec la valeur NULL par défaut.

[ @owner_login_name = ] 'login' Nom de la connexion propriétaire du travail. loginest sysname, avec une valeur par défaut NULL, qui est interprétée comme le nom de connexion actuel. Seuls les membres du rôle serveur fixe sysadmin peuvent définir ou modifier la valeur de @owner_login_name. Si les utilisateurs qui ne sont pas membres du jeu de rôles sysadmin ou modifient la valeur de @owner_login_name, l’exécution de cette procédure stockée échoue et une erreur est retournée.

[ @notify_level_eventlog = ] eventlog_level Valeur indiquant quand placer une entrée dans le journal des applications Microsoft Windows pour ce travail. eventlog_levelest int et peut être l’une de ces valeurs.

Valeur Description
0 Jamais
1 Si succès
2 (par défaut) Si échec
3 Toujours

[ @notify_level_email = ] email_level Valeur qui indique quand envoyer un e-mail à la fin de ce travail. email_levelest int, avec une valeur par défaut de 0, ce qui indique jamais. email_levelutilise les mêmes valeurs que eventlog_level.

[ @notify_level_netsend = ] netsend_level Valeur qui indique quand envoyer un message réseau à la fin de ce travail. netsend_levelest int, avec la valeur par défaut 0, ce qui indique jamais. netsend_level utilise les mêmes valeurs que eventlog_level.

[ @notify_level_page = ] page_level Valeur qui indique quand envoyer une page à la fin de ce travail. page_levelest int, avec une valeur par défaut de 0, ce qui indique jamais. page_levelutilise les mêmes valeurs que eventlog_level.

[ @notify_email_operator_name = ] 'email_name' Nom de l’adresse e-mail de la personne à laquelle envoyer un e-mail lorsque email_level est atteint. email_name est sysname, avec la valeur null par défaut.

[ @notify_netsend_operator_name = ] 'netsend_name' Nom de l’opérateur auquel le message réseau est envoyé à la fin de ce travail. netsend_nameest sysname, avec la valeur par défaut NULL.

[ @notify_page_operator_name = ] 'page_name' Nom de la personne à page à la fin de ce travail. page_nameest sysname, avec la valeur null par défaut.

[ @delete_level = ] delete_level Valeur qui indique quand supprimer le travail. delete_valueest int, avec la valeur par défaut 0, ce qui signifie jamais. delete_levelutilise les mêmes valeurs que eventlog_level.

Notes

Lorsque delete_level a la valeur 3, le travail n’est exécuté qu’une seule fois, quelles que soient les planifications définies pour le travail. De plus, si un travail est supprimé, son historique est également supprimé.

[ @job_id = ] _job_idOUTPUT Numéro d’identification du travail attribué au travail s’il a été créé avec succès. job_id est une variable de sortie de type uniqueidentifier, avec une valeur par défaut NULL.

Codet de retour

0 (réussite) ou 1 (échec)

Jeux de résultats

None

Remarques

@originating_server existe dans sp_add_job, mais n’est pas répertorié sous Arguments. @originating_server est réservé à un usage interne.

Une fois sp_add_job exécuté pour ajouter un travail, sp_add_jobstep pouvez utiliser pour ajouter des étapes qui effectuent les activités du travail. sp_add_jobschedule pouvez être utilisé pour créer la planification que le service SQL Server Agent utilise pour exécuter le travail. Utilisez sp_add_jobserver pour définir l’instance SQL Server où le travail s’exécute et sp_delete_jobserver pour supprimer le travail de l’instance SQL Server.

Si le travail s’exécute sur un ou plusieurs serveurs cibles dans un environnement multiserveur, utilisez sp_apply_job_to_targets pour définir les serveurs cibles ou les groupes de serveurs cibles pour le travail. Pour supprimer des travaux de serveurs cibles ou de groupes de serveurs cibles, utilisez sp_remove_job_from_targets.

SQL Server Management Studio offre un moyen simple et graphique de gérer les tâches, et est recommandé pour la création et la gestion de l'infrastructure de travail.

Autorisations

Pour exécuter cette procédure stockée, les utilisateurs doivent être membres du rôle serveur fixe sysadmin ou se voir attribuer l’un des rôles de base de données fixes SQL Server Agent suivants, qui résident dans la base de données msdb :

  • SQLAgentUserRole

  • SQLAgentReaderRole

  • SQLAgentOperatorRole

Pour plus d’informations sur les autorisations spécifiques associées à chacun de ces rôles de base de données fixes, consultez SQL Server Agent rôles de base de données fixes.

Seuls les membres du rôle serveur fixe sysadmin peuvent définir ou modifier la valeur de @owner_login_name. Si les utilisateurs qui ne sont pas membres du jeu de rôles sysadmin ou modifient la valeur de @owner_login_name, l’exécution de cette procédure stockée échoue et une erreur est retournée.

Exemples

R. Ajout d'un travail

Cet exemple ajoute un nouveau travail appelé NightlyBackups (sauvegardes de nuit).

USE msdb ;  
GO  
  
EXEC dbo.sp_add_job  
    @job_name = N'NightlyBackups' ;  
GO  

B. Ajout d'un travail contenant des informations de radiomessagerie, de messagerie électronique et d'envoi réseau

Dans l'exemple ci-dessous, un travail appelé Ad hoc Sales Data Backup avertit François Ajenstat (par radiomessagerie, messagerie électronique ou par message réseau) lorsqu'un travail échoue, et est supprimé une fois exécuté.

Notes

Dans cet exemple, nous considérons qu'un opérateur nommé François Ajenstat avec une connexion appelée françoisa existe déjà.

USE msdb ;  
GO  
  
EXEC dbo.sp_add_job  
    @job_name = N'Ad hoc Sales Data Backup',   
    @enabled = 1,  
    @description = N'Ad hoc backup of sales data',  
    @owner_login_name = N'françoisa',  
    @notify_level_eventlog = 2,  
    @notify_level_email = 2,  
    @notify_level_netsend = 2,  
    @notify_level_page = 2,  
    @notify_email_operator_name = N'François Ajenstat',  
    @notify_netsend_operator_name = N'François Ajenstat',   
    @notify_page_operator_name = N'François Ajenstat',  
    @delete_level = 1 ;  
GO  

Voir aussi

sp_add_schedule (Transact-SQL)
sp_add_jobstep (Transact-SQL)
sp_add_jobserver (Transact-SQL)
sp_apply_job_to_targets (Transact-SQL)
sp_delete_job (Transact-SQL)
sp_delete_jobserver (Transact-SQL)
sp_remove_job_from_targets (Transact-SQL)
sp_help_job (Transact-SQL)
sp_help_jobstep (Transact-SQL)
sp_update_job (Transact-SQL)
Procédures stockées système (Transact-SQL)