В SQL Server, sp_help_jobschedule
съхранената процедура връща информация за планирането на задания.
Тази статия предоставя общ преглед на тази съхранена процедура, включително примери.
Синтаксис
Официалният синтаксис е така:
sp_help_jobschedule { [ @job_id = ] job_id | [ @job_name = ] 'job_name' }
[ , [ @schedule_name = ] 'schedule_name' ]
[ , [ @schedule_id = ] schedule_id ]
[ , [ @include_description = ] include_description ]
Когато извикате sp_help_jobschedule
, трябва да предоставите или името на заданието, или неговия идентификатор (но не и двете), или идентификатора на графика. Можете също да подадете името на графика, но само в комбинация с идентификатора на заданието или неговото име.
Приетата комбинация е малко трудна. По принцип става така:
Ако schedule_id
е посочен, нито job_id
нито job_name
може да се уточни. В противен случай job_id
или job_name
параметрите могат да се използват с schedule_name
.
Въпреки това, няма да можете да използвате schedule_id
ако график е прикачен към множество задания.
Имайте предвид, че sp_help_jobschedule
е в msdb база данни, така че трябва да се стартира от там. Можете да направите това или като преминете към msdb база данни (например с USE msdb
), или чрез квалифициране на процедурата с името на базата данни и схемата (т.е. msdb.dbo.sp_help_jobschedule
).
Пример
Ето пример, за да демонстрирате как да върнете всички графици, прикачени към конкретна работа:
EXEC sp_help_jobschedule
@job_name = 'SqlAgentTest';
Резултат:
Това връща списък с графици, които са прикачени към заданието, посочено с @job_name
аргумент.
Като алтернатива можех да предам @job_id
:
EXEC sp_help_jobschedule
@job_id = '8A6E1BFF-9F46-4FF9-8E63-ABC8B224B6F8';
Но в този случай не мога да използвам @job_name
(или е едното, или другото).
Когато използвате идентификатора на заданието, можете да пропуснете името на параметъра, ако желаете:
EXEC sp_help_jobschedule '8A6E1BFF-9F46-4FF9-8E63-ABC8B224B6F8';
Използване на @schedule_id
Параметър
Като алтернатива можете да получите график въз основа на неговия идентификатор:
EXEC sp_help_jobschedule
@schedule_id = 15;
Това работи добре, стига графикът да не е свързан с множество задания.
Ето какво се случва, когато график е прикачен към няколко задания:
EXEC sp_help_jobschedule
@schedule_id = 14;
Резултат:
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.
И въпреки че иска да посочите job_id
, ако направите това, ще трябва да премахнете schedule_id
(както споменахме, ако предадете schedule_id
, не можете да включите job_name
или job_id
).
За да демонстрирам това, ако просто добавя job_id
и запазете schedule_id
там получавам следната грешка.
EXEC sp_help_jobschedule
@job_id = '8A6E1BFF-9F46-4FF9-8E63-ABC8B224B6F8',
@schedule_id = 14;
Резултат:
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.
Включете описанието
Друго нещо, което можете да направите, е да посочите дали да включите или не описанието на графика.
По подразбиране описанието не е включено в набора от резултати. Всъщност, schedule_description
колона е включен, но не съдържа описанието, освен ако не го поискате изрично. Ако не го поискате, schedule_description
колоната показва (Description not requested.)
.
@include_description
параметърът е бит , със стойност по подразбиране 0
, което означава, че не показва описанието. Подаване на стойност от 1
води до показване на описанието.
EXEC sp_help_jobschedule
@job_name = 'SqlAgentTest',
@include_description = 1;