V SQL Server, sp_help_jobschedule uložená procedura vrací informace o plánování úloh.
Tento článek poskytuje přehled této uložené procedury včetně příkladů.
Syntaxe
Oficiální syntaxe vypadá takto:
sp_help_jobschedule { [ @job_id = ] job_id | [ @job_name = ] 'job_name' }
[ , [ @schedule_name = ] 'schedule_name' ]
[ , [ @schedule_id = ] schedule_id ]
[ , [ @include_description = ] include_description ]
Když zavoláte sp_help_jobschedule , musíte zadat buď název úlohy nebo její ID (ale ne obojí), nebo ID plánu. Můžete také předat název plánu, ale pouze v kombinaci s ID úlohy nebo jejím názvem.
Přijatá kombinace je trochu ošidná. V zásadě to vypadá takto:
Pokud schedule_id není zadáno ani job_id ani job_name lze specifikovat. Jinak job_id nebo job_name parametry lze použít s schedule_name .
Nebudete však moci použít schedule_id pokud je plán připojen k více úlohám.
Všimněte si, že sp_help_jobschedule je v msdb databázi, takže je třeba ji spouštět odtud. Můžete to provést buď přepnutím do msdb databáze (např. pomocí USE msdb ), nebo kvalifikací postupu s názvem databáze a schématem (tj. msdb.dbo.sp_help_jobschedule ).
Příklad
Zde je příklad, který ukazuje, jak vrátit všechny plány připojené ke konkrétní úloze:
EXEC sp_help_jobschedule
@job_name = 'SqlAgentTest'; Výsledek:
Tím se vrátí seznam plánů, které jsou připojeny k úloze zadané pomocí @job_name argument.
Případně jsem mohl předat @job_id :
EXEC sp_help_jobschedule
@job_id = '8A6E1BFF-9F46-4FF9-8E63-ABC8B224B6F8';
Ale v tom případě jsem nemohl použít @job_name (je buď jedno, nebo druhé).
Při použití ID úlohy můžete vynechat název parametru, pokud si přejete:
EXEC sp_help_jobschedule '8A6E1BFF-9F46-4FF9-8E63-ABC8B224B6F8'; Pomocí @schedule_id Parametr
Alternativně můžete získat plán na základě jeho ID:
EXEC sp_help_jobschedule
@schedule_id = 15; Funguje to dobře, pokud plán není připojen k více úlohám.
Co se stane, když je plán připojen k více úlohám:
EXEC sp_help_jobschedule
@schedule_id = 14; Výsledek:
Msg 14369, Level 16, State 1, Procedure sp_help_jobschedule, Line 69 [Batch Start Line 22] The schedule ID "14" is used by more than one job. Specify the job_id.
A to i přesto, že požaduje zadání job_id , pokud to uděláte, budete muset odstranit schedule_id (jak bylo zmíněno, pokud předáte schedule_id , nemůžete uvést job_name nebo job_id ).
Abych to demonstroval, když jednoduše přidám job_id a ponechte schedule_id tam se mi zobrazí následující chyba.
EXEC sp_help_jobschedule
@job_id = '8A6E1BFF-9F46-4FF9-8E63-ABC8B224B6F8',
@schedule_id = 14; Výsledek:
Msg 14273, Level 16, State 1, Procedure sp_help_jobschedule, Line 51 [Batch Start Line 22] You must provide either @job_id or @job_name (and, optionally, @schedule_name), or @schedule_id.
Zahrňte popis
Další věc, kterou můžete udělat, je určit, zda chcete zahrnout popis plánu.
Ve výchozím nastavení není popis součástí sady výsledků. Vlastně schedule_description sloupec je zahrnuto, ale neobsahuje popis, pokud si to výslovně nevyžádáte. Pokud si to nevyžádáte, schedule_description sloupec zobrazuje (Description not requested.) .
@include_description parametr je bit , s výchozí hodnotou 0 , což znamená, že nezobrazuje popis. Předání hodnoty 1 způsobí zobrazení popisu.
EXEC sp_help_jobschedule
@job_name = 'SqlAgentTest',
@include_description = 1;