Si vous êtes en train de créer un travail SQL Server Agent avec T-SQL, vous vous demandez peut-être s'il faut créer sa planification avec le sp_add_schedule
procédure stockée ou le sp_add_jobschedule
procédure.
Voici une explication rapide de la différence entre ces deux procédures.
La différence
- Le
sp_add_schedule
La procédure crée une planification, mais ne la rattache à aucune tâche. Pour ce faire, vous devez utiliser lesp_attach_schedule
procédure. - Le
sp_add_jobschedule
procédure crée le planning et le rattache à une tâche donnée, le tout en une seule fois.
Par conséquent, sp_add_jobschedule
peut être utilisé si vous devez créer une nouvelle planification pour une tâche spécifique et que cette tâche existe déjà. Si vous créez une planification pour plusieurs tâches et qu'aucune d'entre elles n'existe encore, vous pouvez utiliser sp_add_schedule
. Ensuite, vous pouvez utiliser sp_attach_schedule
pour le joindre à vos travaux plus tard.
Mais cela ne veut pas dire que vous ne pouvez pas utiliser sp_add_schedule
au lieu de sp_add_jobschedule
si le travail existe déjà.
Utilisation de sp_add_schedule
(en conjonction avec sp_attach_schedule
) vous permet de séparer le processus de création des planifications et de les attacher aux travaux. Vous pouvez toujours utiliser cette combinaison même lors de la création d'une seule tâche avec une seule planification.
En d'autres termes, vous pouvez utiliser sp_add_schedule
au lieu de sp_add_jobschedule
pour tous vos travaux de l'Agent SQL Server.
Exemple
Le sp_add_jobschedule
Procédure
Le sp_add_jobschedule
La procédure crée une planification pour un travail donné de l'Agent SQL Server. Lorsque vous appelez cette procédure, vous devez fournir le nom ou l'ID d'une tâche à laquelle vous souhaitez qu'elle s'applique.
Fondamentalement, cette procédure crée un calendrier et l'attache à un seul travail.
Voici un exemple de création d'une tâche et d'utilisation de sp_add_jobschedule
procédure stockée :
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;
Lorsque vous regardez le sp_add_jobschedule
procédure, le @job_name
L'argument fournit le nom du travail. Le @name
l'argument fournit le nom que vous souhaitez donner au planning.
Le sp_add_schedule
Procédure
Le sp_add_schedule
La procédure vous permet de créer une planification sans avoir à spécifier une tâche à laquelle la joindre.
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.
Voici un exemple :
EXEC sp_add_schedule
@schedule_name = N'RunDailyAM',
@freq_type = 4,
@freq_interval = 4,
@active_start_time = 041000;
GO
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).
Joindre un sp_add_jobschedule
Horaire
Il est important de noter que sp_attach_schedule
peut joindre des horaires qui ont été créés avec sp_add_schedule
et avec sp_add_jobschedule
.
En d'autres termes, créer un planning avec sp_add_jobschedule
ne le limite pas uniquement au travail que vous avez spécifié lors de la création de la planification. il est toujours disponible pour être joint à d'autres tâches ultérieurement à l'aide de sp_attach_schedule
.