Harmonogramami agenta SQL Server można zarządzać niezależnie od zadań. Oznacza to, że możesz aktualizować harmonogram bezpośrednio bez aktualizowania samego zadania.
Możesz to zrobić za pomocą sp_update_schedule
procedura składowana.
Przykład
Utwórz harmonogram
Najpierw utwórzmy harmonogram:
EXEC sp_add_schedule
@schedule_name = N'Weekly_Sat_1AM',
@freq_type = 8,
@freq_interval = 64,
@freq_recurrence_factor = 1,
@active_start_time = 10000;
Możemy teraz użyć sp_update_schedule
aby zmodyfikować ten harmonogram.
Zaktualizuj harmonogram
Oto przykład aktualizacji harmonogramu, który właśnie stworzyliśmy.
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;
W tym przypadku zmieniłem nazwę harmonogramu, a także częstotliwość i godzinę rozpoczęcia.
Zwróć uwagę, że sp_update_schedule
zmienia tylko te ustawienia, dla których podane są wartości parametrów. Jeśli parametr zostanie pominięty, bieżące ustawienie zostanie zachowane.
Dlatego, ponieważ niektóre z naszych ustawień pozostały takie same (w szczególności @freq_type
i @freq_recurrence_factor
), mogliśmy całkowicie pominąć te parametry.
Tak:
EXEC sp_update_schedule
@name = N'Weekly_Sat_1AM',
@new_name = N'Weekly_Sun_4AM',
@freq_interval = 1,
@active_start_time = 40000;
Wyłącz harmonogram
Możesz ustawić @enabled
do 0
aby wyłączyć harmonogram.
Przykład:
EXEC sp_update_schedule
@name = N'Weekly_Sun_4AM',
@new_name = N'Weekly_Sun_4AM (DISABLED)',
@enabled = 0;
W tym przykładzie zmieniłem również nazwę, aby było jasne, że zadanie jest wyłączone.
Sprawdź harmonogram
Możesz użyć sp_help_schedule
aby wyświetlić bieżące ustawienia harmonogramu.
Możesz go używać z parametrami lub bez. W przypadku użycia bez parametrów, zwraca wszystkie harmonogramy.
EXEC sp_help_schedule;
Jeśli chcesz zobaczyć szczegóły tylko jednego harmonogramu, możesz podać nazwę lub identyfikator harmonogramu.
Tak:
EXEC sp_help_schedule
@schedule_name = 'Weekly_Sun_4AM';
Chociaż podając imię, musisz pamiętać o nazwisku, które podałeś w harmonogramie. W naszym przypadku, jeśli uruchomimy tę procedurę po poprzednim przykładzie (kiedy wyłączyliśmy harmonogram), musielibyśmy to zrobić:
EXEC sp_help_schedule
@schedule_name = 'Weekly_Sun_4AM (DISABLED)';
Jednak identyfikator harmonogramu pozostaje stały, więc możesz go używać niezależnie od nazwy harmonogramu.
Przykład:
EXEC sp_help_schedule
@schedule_id = 16;
Używając identyfikatora, możesz pominąć nazwę parametru, jeśli chcesz.
Przykład:
EXEC sp_help_schedule 16;
Co się dzieje z zadaniami, które korzystają ze zmodyfikowanego harmonogramu?
Wszystkie zadania korzystające z harmonogramu natychmiast korzystają z nowych ustawień. Jednak zmiana harmonogramu nie zatrzymuje aktualnie uruchomionych zadań.
Pełna składnia
Pełna składnia sp_update_schedule
idzie tak:
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 ]
Zobacz dokumentację Microsoft dla sp_update_schedule
dla wyjaśnienia każdego parametru, a także wartości, które każdy akceptuje.