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_scheduleprocedura tworzy harmonogram, ale nie dołącza go do żadnych zadań. Aby to zrobić, musisz użyćsp_attach_scheduleprocedura.sp_add_jobscheduleprocedura 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 .