sp_add_schedule (Transact-SQL)
Crée une planification qui peut être utilisée par un nombre illimité de travaux.
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. L'argument schedule_nameest de type sysname, sans valeur par défaut.[ @enabled = ] enabled
Indique l'état actuel de la planification. L'argument enabledest de type tinyint, avec 1 comme valeur par défaut (activée). Si la valeur 0 est affectée à l'argument, la planification n'est pas activée. Si la planification n'est pas activée, aucun travail n'est exécuté dans cette dernière.[ @freq_type = ] freq_type
Valeur indiquant à quel moment le travail doit s'exécuter. L'argument freq_typeest de type int, avec 0 comme valeur par défaut. Il peut prendre l'une des valeurs suivantes.Valeur
Description
1
Une fois
4
Quotidiennement
8
Hebdomadairement
16
Mensuellement
32
Mensuellement, en fonction de freq_interval
64
Lancé au démarrage du service SQLServerAgent
128
Lancé lorsque l'ordinateur est inactif
[ @freq_interval = ] freq_interval
Jours d'exécution du travail. L'argument freq_interval est de type int, avec 1 comme valeur par défaut, et varie en fonction de la valeur de freq_type.Valeur de freq_type
Effet sur freq_interval
1 (une fois)
freq_interval n'est pas utilisé.
4 (quotidiennement)
Tous les freq_interval jours.
8 (hebdomadairement)
freq_interval représente une ou plusieurs des valeurs suivantes (combinées avec un opérateur logique OR) :
1 = Dimanche
2 = Lundi
4 = Mardi
8 = Mercredi
16 = Jeudi
32 = Vendredi
64 = Samedi
16 (mensuellement)
Le jour défini par l'argument freq_interval.
32 (mensuel relatif)
freq_interval prend l'une des valeurs suivantes :
1 = Dimanche
2 = Lundi
3 = Mardi
4 = Mercredi
5 = Jeudi
6 = Vendredi
7 = Samedi
8 = Jour
9 = Jour de semaine
10 = Jour de 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
Indique les unités de freq_subday_interval. L'argument freq_subday_typeest de type int, avec 0 comme valeur par défaut ; il peut prendre l'une des valeurs suivantes :Valeur
Description (unité)
0x1
À une heure spécifiée
0x2
Secondes
0x4
Minutes
0x8
Heures
[ @freq_subday_interval = ] freq_subday_interval
Nombre de périodes freq_subday_type entre chaque exécution d'un travail. freq_subday_intervalest de type int, avec 0 comme valeur par défaut. freq_subday_interval est ignoré dans les cas où freq_subday_type est égal à 1. Remarque : l'intervalle ne doit pas être supérieur à 10 secondes.[ @freq_relative_interval = ] freq_relative_interval
Nombre d'occurrences mensuelles du travail, spécifié par freq_interval, si freq_interval a la valeur 32 (mensuel relatif). L'argument freq_relative_intervalest de type int, avec 0 comme valeur par défaut, et peut prendre 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
Premier
2
Deuxième
4
Troisième
8
Quatrième
16
Dernier
[ @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 a la valeur 8, 16 ou 32. freq_recurrence_factorest de type int, avec 0 comme valeur par défaut.[ @active_start_date = ] active_start_date
Date à laquelle l'exécution du travail peut débuter. L'argument active_start_dateest de type int, avec NULL comme valeur par défaut. Cette valeur indique la date du jour. La date a le format AAAAMMJJ. Si la valeur affectée à l'argument active_start_date n'est pas NULL, la date doit être supérieure ou égale à 19900101.Après avoir créé la planification, examinez la date de début et assurez-vous qu'elle est correcte. Pour plus d'informations, consultez la section relative à la planification de la date de début dans Création et attachement de planifications à des travaux.
[ @active_end_date = ] active_end_date
Date à laquelle l'exécution du travail peut s'arrêter. L'argument active_end_dateest de type int, avec 99991231 comme valeur par défaut. Cette valeur indique la date du 31 décembre 9999. La mise en forme est la suivante : AAAAMMJJ.[ @active_start_time = ] active_start_time
Heure de la journée, comprise entre les valeurs affectées aux arguments active_start_date et active_end_date, à laquelle l'exécution du travail doit débuter. L'argument active_start_timeest de type int, avec la valeur 000000 par défaut. Cette valeur indique 12 heures (midi) sur une horloge de 24 heures et doit être au format HHMMSS.[ @active_end_time = ] active_end_time
Heure de la journée, comprise entre les valeurs affectées aux arguments active_start_date et active_end_date, à laquelle l'exécution du travail doit se terminer. L'argument active_end_timeest de type int, avec la valeur 235959 par défaut. Cette valeur indique 23 heures 59 minutes et 59 secondes sur une horloge de 24 heures et doit être au format HHMMSS.[ @owner_login_name= ] 'owner_login_name'
Nom du serveur principal qui détient la planification. owner_login_name est de type sysname, avec la valeur par défaut NULL qui indique que la planification est détenue par le créateur.[ @schedule_uid= ] schedule_uidOUTPUT
Identificateur unique de la planification. La variable schedule_uid est de type uniqueidentifier.[ @schedule_id= ] schedule_idOUTPUT
Identificateur pour la planification. La variable schedule_id est 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 (succès) ou 1 (échec)
Jeux de résultats
Aucun
Notes
SQL Server Management Studio est un outil dont l'interface graphique permet de gérer facilement les travaux. Son utilisation est recommandée pour créer et gérer l'infrastructure des travaux.
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.
Exemples
A. Création d'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éation d'une planification et attachement à 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.
Notes
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
Voir aussi