Se stai creando un processo di SQL Server Agent con T-SQL, ti starai chiedendo se creare la relativa pianificazione con sp_add_schedule
stored procedure o sp_add_jobschedule
procedura.
Ecco una rapida spiegazione della differenza tra queste due procedure.
La differenza
- Il
sp_add_schedule
la procedura crea una pianificazione, ma non la allega ad alcun lavoro. Per farlo, devi usaresp_attach_schedule
procedura. - Il
sp_add_jobschedule
la procedura crea la pianificazione e la allega a un determinato lavoro, tutto in una volta.
Pertanto, sp_add_jobschedule
può essere utilizzato se è necessario creare una nuova pianificazione per un lavoro specifico e quel lavoro esiste già. Se stai creando una pianificazione per più lavori e nessuno di essi esiste ancora, puoi utilizzare sp_add_schedule
. Quindi puoi usare sp_attach_schedule
per allegarlo ai tuoi lavori in un secondo momento.
Ma questo non vuol dire che non puoi usare sp_add_schedule
invece di sp_add_jobschedule
se il lavoro esiste già.
Usando sp_add_schedule
(in combinazione con sp_attach_schedule
) consente di separare il processo di creazione delle pianificazioni e di allegarle ai lavori. Puoi comunque utilizzare questa combinazione anche quando crei un singolo lavoro con un'unica pianificazione.
In altre parole, puoi usare sp_add_schedule
invece di sp_add_jobschedule
per tutti i processi di SQL Server Agent.
Esempio
Il sp_add_jobschedule
Procedura
Il sp_add_jobschedule
procedura crea una pianificazione per un determinato processo di SQL Server Agent. Quando chiami questa procedura, devi fornire il nome o l'ID di un lavoro a cui desideri candidarti.
Fondamentalmente, questa procedura crea una pianificazione e la allega a un singolo lavoro.
Ecco un esempio di creazione di un lavoro e utilizzo di sp_add_jobschedule
procedura memorizzata:
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;
Quando guardi il sp_add_jobschedule
procedura, il @job_name
argomento fornisce il nome del lavoro. Il @name
argomento fornisce il nome che vuoi dare alla pianificazione.
Il sp_add_schedule
Procedura
Il sp_add_schedule
La procedura consente di creare una pianificazione senza dover specificare un lavoro a cui allegarla.
Questa procedura crea la pianificazione, ma non la allega ad alcun lavoro. Per allegarlo a un lavoro, devi utilizzare sp_attach_schedule
procedura.
Ecco un esempio:
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
Quando usi sp_attach_schedule
, devi fornire il nome del lavoro o il suo ID (ma non entrambi), nonché il nome o l'ID della pianificazione (ma non entrambi).
Allegare un sp_add_jobschedule
Programma
È importante notare che sp_attach_schedule
può allegare pianificazioni che sono state create con entrambi sp_add_schedule
e con sp_add_jobschedule
.
In altre parole, creare una pianificazione con sp_add_jobschedule
non lo limita solo al lavoro specificato durante la creazione della pianificazione. è ancora disponibile per essere allegato ad altri lavori in seguito utilizzando sp_attach_schedule
.