sp_add_schedule (Transact-SQL)

S’applique à :SQL ServerAzure 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 = ] enabled Indique l’état actuel de la planification. enabled est tinyint, avec la valeur par défaut 1 (activé). Si la valeur est 0, 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 quand un travail doit être exécuté. freq_type est int, avec la valeur par défaut 0, et peut être l’une de ces valeurs.

Valeur Description
1 Une fois
4 Quotidien
8 Chaque semaine
16 Mensuelle
32 Mensuel, par rapport à freq_interval
64 Exécuter au démarrage du service SQL Agent
128 Exécuter lorsque l’ordinateur est inactif (non pris en charge dans Azure SQL Managed Instance)

[ @freq_interval = ] freq_interval Jours pendant lesquels un travail est exécuté. freq_interval est int, avec la 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 est inutilisé.
4 (par jour) Tous les freq_interval jours.
8 (hebdomadaire) freq_interval est un ou plusieurs des éléments suivants (combinés avec un opérateur logique OR) :

1 = dimanche

2 = lundi

4 = mardi

8 = mercredi

16 = jeudi

32 = vendredi

64 = samedi
16 (mensuel) Le freq_interval jour du mois.
32 (mensuel relatif) freq_interval est l’un des éléments suivants :

1 = dimanche

2 = lundi

3 = mardi

4 = mercredi

5 = jeudi

6 = vendredi

7 = samedi

8 = Jour

9 = Jour de la semaine

10 = Jour du week-end
64 (au démarrage du service SQLServerAgent) freq_interval est inutilisé.
128 freq_interval est inutilisé.

[ @freq_subday_type = ] freq_subday_type Spécifie les unités pour freq_subday_interval. freq_subday_type est int, avec la valeur par défaut 0, et peut être l’une de ces valeurs.

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 de freq_subday_type entre chaque exécution d’un travail. freq_subday_interval est int, avec la valeur par défaut 0. Remarque : l'intervalle doit être supérieur à 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 (par rapport mensuel). freq_relative_interval est int, avec la 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 Dernier

[ @freq_recurrence_factor = ] freq_recurrence_factor Nombre de semaines ou de mois entre l’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 la valeur par défaut NULL, qui indique la date du jour. La date est au format AAAAMMJJ. Si 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 « 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 se situe dans le passé, et utilise à la place la date actuelle. Lorsqu'une planification de l'agent SQL est créée à l'aide de sp_add_schedule, il existe une option pour spécifier le paramètre active_start_date, qui correspond à la date à laquelle l'exécution du travail commencera. Si le type de planification est hebdomadaire ou mensuel et que le paramètre active_start_date est défini à une date située 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 la valeur par défaut 99991231, ce qui indique le 31 décembre 9999. La mise en forme est la suivante : AAAAMMJJ.

[ @active_start_time = ] active_start_time Heure de n’importe quel 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 de 000000, qui indique 12:00:00 sur une horloge de 24 heures, et doit être entré au format HHMMSS.

[ @active_end_time = ] active_end_time Le temps de n’importe quel jour entre active_start_date et active_end_date pour mettre fin à l’exécution d’un travail. active_end_time est int, avec la valeur par défaut 235959, qui indique 23:59:59 sur une horloge de 24 heures, et doit être entré au format HHMMSS.

[ @owner_login_name = ] 'owner_login_name' Nom du principal de serveur propriétaire de la planification. owner_login_name est sysname, avec la valeur par défaut NULL, ce qui indique que la planification appartient au créateur.

[ @schedule_uid = ] _schedule_uidOUTPUT Identificateur unique de la planification. schedule_uid est une variable de type uniqueidentifier.

[ @schedule_id = ] _schedule_idOUTPUT Identificateur de 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.

Codet de retour

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

Jeux de résultats

None

Remarques

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

Par défaut, les membres du rôle 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 suivants de SQL Server Agent 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

R. 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

Créer des planifications et les attacher à des travaux
Planifier un travail
Créer une planification
Procédures stockées de l'Agent SQL Server (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)