Графиците на SQL Server Agent могат да се управляват независимо от заданията. Това означава, че можете да актуализирате графика директно, без да актуализирате самото задание.
Можете да направите това с sp_update_schedule
съхранена процедура.
Пример
Създайте график
Първо, нека създадем график:
EXEC sp_add_schedule
@schedule_name = N'Weekly_Sat_1AM',
@freq_type = 8,
@freq_interval = 64,
@freq_recurrence_factor = 1,
@active_start_time = 10000;
Вече можем да използваме sp_update_schedule
за да промените този график.
Актуализиране на графика
Ето пример за актуализиране на графика, който току-що създадохме.
EXEC sp_update_schedule
@name = N'Weekly_Sat_1AM',
@new_name = N'Weekly_Sun_4AM',
@freq_type = 8,
@freq_interval = 1,
@freq_recurrence_factor = 1,
@active_start_time = 40000;
В този случай промених името на графика, както и честотния интервал и началния час.
Обърнете внимание, че sp_update_schedule
променя само тези настройки, за които са предоставени стойности на параметрите. Ако параметърът е пропуснат, текущата настройка се запазва.
Следователно, тъй като някои от нашите настройки останаха същите (по-конкретно, @freq_type
и @freq_recurrence_factor
), бихме могли да пропуснем тези параметри изобщо.
Като това:
EXEC sp_update_schedule
@name = N'Weekly_Sat_1AM',
@new_name = N'Weekly_Sun_4AM',
@freq_interval = 1,
@active_start_time = 40000;
Деактивиране на график
Можете да зададете @enabled
до 0
за да деактивирате график.
Пример:
EXEC sp_update_schedule
@name = N'Weekly_Sun_4AM',
@new_name = N'Weekly_Sun_4AM (DISABLED)',
@enabled = 0;
В този пример също промених името, за да стане ясно, че заданието е деактивирано.
Проверете графика
Можете да използвате sp_help_schedule
за да видите текущите настройки на график.
Можете да го използвате със или без параметри. Когато се използва без параметри, той връща всички графици.
EXEC sp_help_schedule;
Ако искате да видите подробностите само за един график, можете да предоставите името или идентификатора на графика.
Като това:
EXEC sp_help_schedule
@schedule_name = 'Weekly_Sun_4AM';
Въпреки че, когато предоставяте името, ще трябва да запомните фамилното име, което сте дали на графика. В нашия случай, ако изпълним тази процедура след предишния пример (когато сме деактивирали графика), ще трябва да направим това:
EXEC sp_help_schedule
@schedule_name = 'Weekly_Sun_4AM (DISABLED)';
Идентификационният номер на графика обаче остава постоянен, така че можете да го използвате независимо от името на графика.
Пример:
EXEC sp_help_schedule
@schedule_id = 16;
Когато използвате идентификатора, можете да пропуснете името на параметъра, ако желаете.
Пример:
EXEC sp_help_schedule 16;
Какво се случва с работни места, които използват модифицирания график?
Всички задания, които използват графика, незабавно използват новите настройки. Промяната на график обаче не спира заданията, които се изпълняват в момента.
Пълен синтаксис
Пълният синтаксис на sp_update_schedule
става така:
sp_update_schedule
{ [ @schedule_id = ] schedule_id
| [ @name = ] 'schedule_name' }
[ , [ @new_name = ] new_name ]
[ , [ @enabled = ] enabled ]
[ , [ @freq_type = ] freq_type ]
[ , [ @freq_interval = ] freq_interval ]
[ , [ @freq_subday_type = ] freq_subday_type ]
[ , [ @freq_subday_interval = ] freq_subday_interval ]
[ , [ @freq_relative_interval = ] freq_relative_interval ]
[ , [ @freq_recurrence_factor = ] freq_recurrence_factor ]
[ , [ @active_start_date = ] active_start_date ]
[ , [ @active_end_date = ] active_end_date ]
[ , [ @active_start_time = ] active_start_time ]
[ , [ @active_end_time = ] active_end_time ]
[ , [ @owner_login_name = ] 'owner_login_name' ]
[ , [ @automatic_post =] automatic_post ]
Вижте документацията на Microsoft за sp_update_schedule
за обяснение на всеки параметър, както и стойностите, които всеки приема.