Lorsque vous utilisez T-SQL, vous pouvez utiliser le sp_add_schedule
procédure stockée pour ajouter une planification de l'Agent SQL Server.
Cette procédure crée la planification, mais elle ne la rattache à aucune tâche. Pour le joindre à une tâche, vous devez utiliser le sp_attach_schedule
procédure.
Vous pouvez également utiliser sp_add_jobschedule
pour créer le planning et joindre le tout avec la même procédure.
Exemple de sp_add_schedule
Procédure
Voici un exemple qui utilise sp_add_schedule
pour créer un nouveau planning :
EXEC sp_add_schedule
@schedule_name = N'RunDailyAM',
@freq_type = 4,
@freq_interval = 4,
@active_start_time = 041000;
GO
Cette procédure stockée accepte plus d'arguments que j'ai inclus dans cet exemple, mais ce sont quelques-uns des plus courants. Consultez les tableaux ci-dessous pour un aperçu des valeurs acceptées.
@schedule_name
est un argument obligatoire, mais les autres sont facultatifs et ont des paramètres par défaut au cas où vous ne les fourniriez pas.
Nous pouvons maintenant utiliser sp_attach_schedule
pour joindre ce planning à une tâche existante :
EXEC sp_attach_schedule
@job_name = N'BackupPetHotelDB',
@schedule_name = N'RunDailyAM';
GO
Lorsque vous utilisez sp_attach_schedule
, vous devez fournir le nom de la tâche ou son ID (mais pas les deux), ainsi que le nom ou l'ID de la planification (mais pas les deux).
Exemple de sp_add_jobschedule
Procédure
Voici un exemple qui utilise sp_add_jobschedule
pour créer un nouveau planning et le rattacher à une tâche, le tout en une seule fois :
EXEC sp_add_jobschedule
@job_name = N'BackupMusicDB',
@name = N'Weekly_Sun_3AM',
@freq_type = 8,
@freq_interval = 1,
@freq_recurrence_factor = 1,
@active_start_time = 30000;
Avec cette procédure, le @job_name
l'argument fournit le nom du travail et le @name
l'argument fournit le nom que vous souhaitez donner au planning.
Valeurs des paramètres
La façon dont les données de planification sont stockées dans le msdb base de données complique un peu la planification des travaux avec T-SQL.
Les valeurs de date/heure sont stockées en tant que int les types. Le type de fréquence est exprimé sous la forme d'un int , ainsi que les valeurs d'intervalle et diverses autres options.
Vous trouverez ci-dessous un aperçu des valeurs acceptées pour les paramètres fournis dans les exemples ci-dessus.
@freq_type
Cet argument spécifie quand un travail doit être exécuté. Il accepte les valeurs suivantes :
Valeur | Description |
---|---|
1 | Une fois |
4 | Quotidien |
8 | Hebdomadaire |
16 | Mensuel |
32 | Mensuel, par rapport à freq_interval |
64 | Exécuter au démarrage du service SQL Agent |
128 | Exécuter lorsque l'ordinateur est inactif |
@freq_interval
Cet argument spécifie les jours pendant lesquels un travail est exécuté.
Cet argument dépend de la valeur de @freq_type
argument, comme indiqué dans le tableau suivant :
Valeur de freq_type | Effet sur freq_interval |
---|---|
1 (une fois) | freq_interval n'est pas utilisé. |
4 (quotidien) | Chaque freq_interval jours. |
8 (hebdomadaire) | freq_interval est un ou plusieurs des éléments suivants (combinés avec un OR opérateur logique):1 (Dimanche) 2 (Lundi) 4 (Mardi) 8 (Mercredi) 16 (Jeudi) 32 (Vendredi) 64 (samedi) |
16 (mensuel) | Sur le freq_interval jour du mois. |
32 (relatif mensuel) | freq_interval est l'un des suivants :1 (Dimanche) 2 (Lundi) 3 (Mardi) 4 (Mercredi) 5 (Jeudi) 6 (Vendredi) 7 (Samedi) 8 (Jour) 9 (Jour de la semaine) 10 (Jour de week-end) |
64 (quand le service SQLServerAgent démarre) | freq_interval n'est pas utilisé. |
128 | freq_interval n'est pas utilisé. |
@freq_recurrence_factor
Ceci spécifie le nombre de semaines ou de mois entre l'exécution planifiée d'un travail.
C'est int , avec une valeur par défaut de 0
, et n'est utilisé que si freq_type
est 8
, 16
, ou 32
.
@active_start_time
Spécifie l'heure de n'importe quel jour entre le @active_start_date
et le @active_end_date
arguments pour commencer l'exécution d'un travail. @active_start_time
est entier , avec une valeur par défaut de 000000
, qui indique 12:00:00 A.M. sur une horloge de 24 heures, et doit être saisi à l'aide du formulaire HHMMSS.
@active_start_date
Bien qu'il ne soit pas inclus dans mes exemples ci-dessus, le @active_start_date
L'argument permet de spécifier la date à laquelle l'exécution d'un travail peut commencer. C'est int , avec par défaut NULL, qui indique la date du jour. La date est au format AAAAMMJJ.
@active_end_date
Vous pouvez également fournir un @active_end_date
argument, qui spécifie la date à laquelle l'exécution d'un travail peut s'arrêter.
@active_end_date
est entier , avec une valeur par défaut de 99991231
, qui indique le 31 décembre 9999. La date est au format AAAAMMJJ.
Plus d'informations
Consultez la documentation de Microsoft pour sp_add_schedule
et/ou la documentation de Microsoft pour sp_add_jobschedule
pour plus de détails sur les différents arguments et leurs valeurs acceptées.