Pokud právě vytváříte úlohu SQL Server Agent pomocí T-SQL, možná vás zajímá, zda vytvořit její plán pomocí sp_add_schedule
uložená procedura nebo sp_add_jobschedule
postup.
Zde je rychlé vysvětlení rozdílu mezi těmito dvěma postupy.
Rozdíl
sp_add_schedule
procedura vytvoří plán, ale nepřipojí ho k žádné úloze. Chcete-li to provést, musíte použítsp_attach_schedule
postup.sp_add_jobschedule
procedura vytvoří rozvrh a připojí jej k dané úloze, vše najednou.
Proto sp_add_jobschedule
je v pořádku použít, pokud potřebujete vytvořit nový plán pro konkrétní úlohu a tato úloha již existuje. Pokud vytváříte plán pro více úloh a žádná z nich zatím neexistuje, můžete použít sp_add_schedule
. Pak můžete použít sp_attach_schedule
k pozdějšímu připojení k vašim úlohám.
To však neznamená, že nemůžete použít sp_add_schedule
místo sp_add_jobschedule
pokud úloha již existuje.
Pomocí sp_add_schedule
(ve spojení s sp_attach_schedule
) umožňuje oddělit proces vytváření rozvrhů a jejich připojování k úlohám. Tuto kombinaci můžete stále používat i při vytváření jedné úlohy s jedním plánem.
Jinými slovy, můžete použít sp_add_schedule
místo sp_add_jobschedule
pro všechny vaše úlohy SQL Server Agent.
Příklad
sp_add_jobschedule
Postup
sp_add_jobschedule
procedura vytvoří plán pro danou úlohu SQL Server Agent. Když zavoláte tento postup, musíte zadat název nebo ID úlohy, na kterou se má vztahovat.
V podstatě tento postup vytvoří plán a připojí ho k jedné úloze.
Zde je příklad vytvoření úlohy a použití sp_add_jobschedule
uložená procedura:
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;
Když se podíváte na sp_add_jobschedule
postup, @job_name
argument poskytuje název úlohy. @name
argument poskytuje název, který chcete dát plánu.
sp_add_schedule
Postup
sp_add_schedule
procedura vám umožňuje vytvořit plán, aniž byste museli specifikovat úlohu, ke které jej chcete připojit.
Tento postup vytvoří plán, ale nepřipojí ho k žádné úloze. Chcete-li jej připojit k úloze, musíte použít sp_attach_schedule
postup.
Zde je příklad:
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
Když používáte sp_attach_schedule
, musíte zadat název úlohy nebo její ID (ale ne obojí) a také název nebo ID plánu (ale ne obojí).
Připojení sp_add_jobschedule
Rozvrh
Je důležité si uvědomit, že sp_attach_schedule
můžete připojit plány, které byly vytvořeny pomocí obou sp_add_schedule
a pomocí sp_add_jobschedule
.
Jinými slovy, vytvoření plánu pomocí sp_add_jobschedule
neomezuje pouze na úlohu, kterou jste zadali při vytváření plánu. je stále k dispozici pro pozdější připojení k jiným úlohám pomocí sp_attach_schedule
.