sp_add_job (Transact-SQL)
S’applique à : SQL Server Azure SQL Managed Instance
Crée un travail exécuté par le service SQL Server 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 = ] N'job_name'
[ , [ @enabled = ] enabled ]
[ , [ @description = ] N'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
Nom du travail. Le nom doit être unique et ne peut pas contenir le caractère pourcentage (%
). @job_name est nvarchar(128), sans valeur par défaut. Obligatoire.
@enabled
Indique l'état du travail ajouté. activé est tinyint, avec une valeur par défaut ( 1
activée). Si 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 du travail. @description est nvarchar(512), avec la valeur par défaut NULL
. Si @description est omis, N'No description available'
il est utilisé.
@start_step_id
Numéro d'identification de la première étape à exécuter pour le travail. @start_step_id est int, avec la valeur par défaut 1
.
@category_name
Catégorie du travail. @category_name est sysname, avec la valeur par défaut NULL
.
@category_id
Mécanisme qui ne tient pas compte de la langue définie et qui permet de spécifier une catégorie de travail. @category_id est int, avec la valeur par défaut NULL
.
@owner_login_name
Nom du compte de connexion propriétaire du travail. @owner_login_name est 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
Valeur indiquant le moment auquel une entrée doit être ajoutée pour ce travail dans le journal des applications Microsoft Windows. @notify_level_eventlog est int et peut être l’une des valeurs suivantes :
Valeur | Description |
---|---|
0 |
Jamais |
1 |
Si succès |
2 (valeur par défaut) |
Si échec |
3 |
Toujours |
@notify_level_email
Valeur indiquant à quel moment envoyer un message électronique une fois ce travail achevé. @notify_level_email est int, avec une valeur par défaut , 0
qui indique jamais. @notify_level_email utilise les mêmes valeurs que @notify_level_eventlog.
@notify_level_netsend
Valeur indiquant à quel moment envoyer un message réseau une fois ce travail achevé. @notify_level_netsend est int, avec une valeur par défaut , 0
qui indique jamais. @notify_level_netsend utilise les mêmes valeurs que @notify_level_eventlog.
@notify_level_page
Valeur indiquant à quel moment envoyer une page une fois ce travail achevé. @notify_level_page est int, avec une valeur par défaut de 0
, qui indique jamais. @notify_level_page utilise les mêmes valeurs que @notify_level_eventlog.
@notify_email_operator_name
Nom du courrier électronique de la personne à laquelle envoyer un e-mail lorsque @notify_email_operator_name est atteint. @notify_email_operator_name est sysname, avec la valeur par défaut NULL
.
@notify_netsend_operator_name
Nom de l'opérateur à qui le message réseau est envoyé une fois ce travail exécuté. @notify_netsend_operator_name est sysname, avec la valeur par défaut NULL
.
@notify_page_operator_name
Nom de la personne à qui envoyer un message par radiomessagerie une fois ce travail exécuté. @notify_page_operator_name est sysname, avec la valeur par défaut NULL
.
@delete_level
Valeur indiquant à quel moment supprimer le travail. delete_value est int, avec une valeur par défaut , 0
ce qui signifie jamais. @delete_level utilise les mêmes valeurs que @notify_level_eventlog.
Remarque
Lorsque @delete_level est 3
, le travail n’est exécuté qu’une seule fois, quelle que soit la planification définie pour le travail. De plus, si un travail est supprimé, son historique est également supprimé.
@job_id SORTIE
Numéro d'identification du travail affecté si le travail est correctement créé. @job_id est une variable de sortie de type uniqueidentifier, avec une valeur par défaut NULL
.
Valeurs des codes de retour
0
(réussite) or 1
(échec).
Jeu de résultats
Aucune.
Notes
@originating_server existe dans sp_add_job
, mais n’est pas répertorié sous Arguments. @originating_server est réservé à une utilisation interne.
Après sp_add_job
avoir été exécuté pour ajouter un travail, sp_add_jobstep
vous pouvez l’utiliser pour ajouter des étapes qui effectuent les activités du travail. sp_add_jobschedule
peut être utilisé pour créer la planification utilisée par le service SQL Server Agent pour exécuter le travail.
Permet sp_add_jobserver
de définir l’instance SQL Server où le travail s’exécute et sp_delete_jobserver
de 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 des serveurs cibles ou des groupes de serveurs cibles, utilisez sp_remove_job_from_targets
. La fonctionnalité Administration multiserveur (MSX/TSX) n’est pas prise en charge sur Azure SQL Managed Instance.
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.
Cette procédure stockée partage le nom d’un sp_add_job
objet similaire pour le service Travaux élastiques Azure pour Azure SQL Database. Pour plus d’informations sur la version des travaux élastiques, consultez jobs.sp_add_job (Travaux élastiques Azure).
autorisations
Cette procédure stockée appartient au rôle db_owner . Vous pouvez accorder EXECUTE
des autorisations pour n’importe quel utilisateur, mais ces autorisations peuvent être remplacées lors d’une mise à niveau de SQL Server.
D’autres utilisateurs doivent disposer de l’un des rôles de base de données fixes SQL Server Agent suivants dans la msdb
base de données :
- 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 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. Ajouter 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. Ajouter un travail avec le pagineur, le courrier électronique et les informations d’envoi net
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é.
Remarque
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
Contenu connexe
- 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)