sp_add_schedule (Transact-SQL)
S’applique à : SQL Server Azure SQL Managed Instance
Crée une planification qui peut être utilisée par un nombre illimité de travaux.
Conventions de la syntaxe Transact-SQL
Syntaxe
sp_add_schedule
[ @schedule_name = ] 'schedule_name'
[ , [ @enabled = ] enabled ]
[ , [ @freq_type = ] freq_type ]
[ , [ @freq_interval = ] freq_interval ]
[ , [ @freq_subday_type = ] freq_subday_type ]
[ , [ @freq_subday_interval = ] freq_subday_interval ]
[ , [ @freq_relative_interval = ] freq_relative_interval ]
[ , [ @freq_recurrence_factor = ] freq_recurrence_factor ]
[ , [ @active_start_date = ] active_start_date ]
[ , [ @active_end_date = ] active_end_date ]
[ , [ @active_start_time = ] active_start_time ]
[ , [ @active_end_time = ] active_end_time ]
[ , [ @owner_login_name = ] 'owner_login_name' ]
[ , [ @schedule_uid = ] schedule_uid OUTPUT ]
[ , [ @schedule_id = ] schedule_id OUTPUT ]
[ , [ @originating_server = ] server_name ] /* internal */
[ ; ]
Arguments
[ @schedule_name = ] 'schedule_name'
Nom de la planification. @schedule_name est sysname, sans valeur par défaut.
[ @enabled = ] activé
Indique l'état actuel de la planification. @enabled est tinyint, avec une valeur par défaut (1
activée). Si 0
la planification n’est pas activée. Lorsque la planification n’est pas activée, aucun travail n’est exécuté sur cette planification.
[ @freq_type = ] freq_type
Valeur indiquant à quel moment un travail doit être exécuté. @freq_type est int, avec une valeur par défaut 0
, et peut être l’une de ces valeurs.
Valeur | Description |
---|---|
1 |
Une fois |
4 |
Quotidiennement |
8 |
Hebdomadaire |
16 |
Mensuelle |
32 |
Mensuel, par rapport à @freq_interval |
64 |
Exécuter quand le service SQL Server Agent démarre |
128 |
Exécuter lorsque l’ordinateur est inactif (non pris en charge dans Azure SQL Managed Instance) |
[ @freq_interval = ] @freq_interval
Jours d’exécution d’un travail. @freq_interval est int, avec une valeur par défaut 1
, et dépend de la valeur de @freq_type.
Valeur de @freq_type | Effet sur @freq_interval |
---|---|
1 (une fois) |
@freq_interval n’est pas utilisé. |
4 (quotidien) |
Tous les @freq_interval jours. |
8 (hebdomadaire) |
@freq_interval est un ou plusieurs des éléments suivants (combinés à un OR opérateur logique) :1 = Dimanche2 = Lundi4 = Mardi8 = Mercredi16 = jeudi32 = vendredi64 = Samedi |
16 (mensuel) |
Le @freq_interval jour du mois. |
32 (relatif mensuel) |
@freq_interval est l’un des éléments suivants :1 = Dimanche2 = Lundi3 = Mardi4 = Mercredi5 = jeudi6 = vendredi7 = Samedi8 = Jour9 = Jour de la semaine10 = Jour du week-end |
64 (au démarrage du service SQLServerAgent) |
@freq_interval n’est pas utilisé. |
128 |
@freq_interval n’est pas utilisé. |
[ @freq_subday_type = ] freq_subday_type
Spécifie les unités de @freq_subday_interval. @freq_subday_type est int, avec une valeur par défaut 0
, et peut être l’une de ces valeurs.
Valeur | Description (unité) |
---|---|
1 |
À une heure spécifiée |
2 |
Secondes |
4 |
Minutes |
8 |
heures |
[ @freq_subday_interval = ] freq_subday_interval
Nombre de périodes @freq_subday_type à effectuer entre chaque exécution d’un travail. @freq_subday_interval est int, avec la valeur par défaut 0
. L’intervalle doit être d’au moins 10 secondes. @freq_subday_interval est ignoré dans les cas où @freq_subday_type est égal à 1
.
[ @freq_relative_interval = ] freq_relative_interval
L’occurrence d’un travail de @freq_interval chaque mois, si @freq_interval est de 32 (relatif mensuel). @freq_relative_interval est int, avec une valeur par défaut 0
, et peut être l’une de ces valeurs. @freq_relative_interval est ignoré dans les cas où @freq_type n’est pas égal à 32.
Valeur | Description (unité) |
---|---|
1 |
First |
2 |
Second |
4 |
Third |
8 |
Quatrième |
16 |
Dernière |
[ @freq_recurrence_factor = ] freq_recurrence_factor
Nombre de semaines ou de mois devant s'écouler entre chaque exécution planifiée d'un travail. @freq_recurrence_factor est utilisé uniquement si @freq_type est 8
, 16
ou 32
. @freq_recurrence_factor est int, avec la valeur par défaut 0
.
[ @active_start_date = ] active_start_date
Date à laquelle l’exécution d’un travail peut commencer. @active_start_date est int, avec une valeur par défaut NULL
, qui indique la date du jour. La date est mise en forme en tant que yyyyMMdd
. Si @active_start_date n’est pas NULL
, la date doit être supérieure ou égale à 19900101.
Une fois la planification créée, passez en revue la date de début et vérifiez qu’il s’agit de la date correcte. Pour plus d’informations, consultez la section « Date de début de la planification » dans Créer et attacher des planifications à des travaux.
Pour les planifications hebdomadaires ou mensuelles, l’Agent ignore si @active_start_date est dans le passé et utilise plutôt la date actuelle. Lorsqu’une planification SQL Server Agent est créée à l’aide sp_add_schedule
d’une option permettant de spécifier le paramètre @active_start_date date à laquelle l’exécution du travail commence. Si le type de planification est hebdomadaire ou mensuel et que le paramètre @active_start_date est défini sur une date dans le passé, le paramètre @active_start_date est ignoré et la date actuelle est utilisée pour @active_start_date.
[ @active_end_date = ] active_end_date
Date à laquelle l'exécution d'un travail peut s'arrêter. @active_end_date est int, avec une valeur par défaut , 99991231
qui indique le 31 décembre 9999. Mise en forme en tant que yyyyMMdd
.
[ @active_start_time = ] active_start_time
Heure de tout jour entre @active_start_date et @active_end_date pour commencer l’exécution d’un travail. @active_start_time est int, avec une valeur par défaut , 000000
qui indique 12:00:00 A.M. sur une horloge de 24 heures et doit être entrée à l’aide du formulaireHHmmss
.
[ @active_end_time = ] active_end_time
Heure de tous les jours entre @active_start_date et @active_end_date pour mettre fin à l’exécution d’un travail. @active_end_time est int, avec une valeur par défaut 235959
, qui indique 11:59:59 P.M. sur une horloge de 24 heures, et doit être entrée à l’aide du formulaire HHmmss
.
[ @owner_login_name = ] 'owner_login_name'
Nom du principal de serveur qui détient la planification. @owner_login_name est sysname, avec une valeur par défaut , NULL
qui indique que la planification est détenue par le créateur.
[ @schedule_uid = ] sortie de schedule_uid
Identificateur unique de la planification. @schedule_uid est une variable de type uniqueidentifier.
[ @schedule_id = ] sortie de schedule_id
Identificateur pour la planification. @schedule_id est une variable de type int.
[ @originating_server = ] server_name
Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.
Valeurs des codes de retour
0
(réussite) or 1
(échec).
Jeu de résultats
Aucune.
Notes
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
Vous pouvez accorder EXECUTE
des autorisations sur cette procédure, 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.
Exemples
R. Créer une planification
L'exemple suivant crée une planification nommée RunOnce
. Elle s'exécute une fois à 23:30
le jour où la planification est créée.
USE msdb;
GO
EXEC dbo.sp_add_schedule
@schedule_name = N'RunOnce',
@freq_type = 1,
@active_start_time = 233000;
GO
B. Créer une planification, en attachant la planification à plusieurs travaux
L'exemple suivant crée une planification nommée NightlyJobs
. Les travaux qui utilisent cette planification s'exécutent tous les jours lorsque l'heure indiquée par le serveur est 01:00
. L'exemple joint la planification au travail BackupDatabase
et au travail RunReports
.
Remarque
Cet exemple suppose que les travaux BackupDatabase
et RunReports
existent déjà.
USE msdb;
GO
EXEC sp_add_schedule
@schedule_name = N'NightlyJobs',
@freq_type = 4,
@freq_interval = 1,
@active_start_time = 010000;
GO
EXEC sp_attach_schedule
@job_name = N'BackupDatabase',
@schedule_name = N'NightlyJobs';
GO
EXEC sp_attach_schedule
@job_name = N'RunReports',
@schedule_name = N'NightlyJobs';
GO
Contenu connexe
- Créer des planifications et les attacher à des travaux
- Planifier un travail
- Créer une planification
- Procédures stockées sql Server Agent (Transact-SQL)
- sp_add_jobschedule (Transact-SQL)
- sp_update_schedule (Transact-SQL)
- sp_delete_schedule (Transact-SQL)
- sp_help_schedule (Transact-SQL)
- sp_attach_schedule (Transact-SQL)