Jeśli jesteś w trakcie tworzenia zadania SQL Server Agent za pomocą T-SQL, możesz zastanawiać się, czy utworzyć jego harmonogram za pomocą sp_add_schedule
procedura składowana lub sp_add_jobschedule
procedura.
Oto krótkie wyjaśnienie różnicy między tymi dwiema procedurami.
Różnica
sp_add_schedule
procedura tworzy harmonogram, ale nie dołącza go do żadnych zadań. Aby to zrobić, musisz użyćsp_attach_schedule
procedura.sp_add_jobschedule
procedura tworzy harmonogram i dołącza go do danego zadania za jednym razem.
Dlatego sp_add_jobschedule
jest w porządku, jeśli chcesz utworzyć nowy harmonogram dla określonego zadania, a to zadanie już istnieje. Jeśli tworzysz harmonogram dla wielu zadań, a żadne z nich jeszcze nie istnieje, możesz użyć sp_add_schedule
. Następnie możesz użyć sp_attach_schedule
aby później dołączyć go do swoich zadań.
Ale to nie znaczy, że nie możesz użyć sp_add_schedule
zamiast sp_add_jobschedule
jeśli praca już istnieje.
Korzystanie z sp_add_schedule
(w połączeniu z sp_attach_schedule
) pozwala oddzielić proces tworzenia harmonogramów i dołączania ich do zleceń. Nadal możesz używać tego zestawu, nawet podczas tworzenia pojedynczego zadania z jednym harmonogramem.
Innymi słowy, możesz użyć sp_add_schedule
zamiast sp_add_jobschedule
dla wszystkich zadań agenta SQL Server.
Przykład
sp_add_jobschedule
Procedura
sp_add_jobschedule
Procedura tworzy harmonogram dla danego zadania SQL Server Agent. Wywołując tę procedurę, musisz podać nazwę lub identyfikator stanowiska, do którego chcesz się zastosować.
Zasadniczo ta procedura tworzy harmonogram i dołącza go do pojedynczego zadania.
Oto przykład tworzenia zadania i korzystania z sp_add_jobschedule
procedura składowana:
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;
Kiedy spojrzysz na sp_add_jobschedule
procedura, @job_name
argument podaje nazwę zadania. @name
argument zawiera nazwę, którą chcesz nadać harmonogramowi.
sp_add_schedule
Procedura
sp_add_schedule
Procedura umożliwia tworzenie harmonogramu bez konieczności określania zadania, do którego ma zostać dołączony.
Ta procedura tworzy harmonogram, ale nie dołącza go do żadnych zadań. Aby dołączyć go do zadania, musisz użyć sp_attach_schedule
procedura.
Oto przykład:
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
Gdy używasz sp_attach_schedule
, musisz podać nazwę zadania lub jego identyfikator (ale nie oba), a także nazwę harmonogramu lub identyfikator (ale nie oba).
Dołączanie sp_add_jobschedule
Harmonogram
Należy pamiętać, że sp_attach_schedule
może dołączyć harmonogramy, które zostały utworzone za pomocą obu sp_add_schedule
i z sp_add_jobschedule
.
Innymi słowy, tworzenie harmonogramu za pomocą sp_add_jobschedule
nie ogranicza go tylko do zadania określonego podczas tworzenia harmonogramu. nadal można go dołączyć do innych zadań później za pomocą sp_attach_schedule
.