Używając T-SQL, możesz użyć sp_add_schedule
procedura składowana, aby dodać harmonogram agenta SQL Server.
Ta procedura tworzy harmonogram, ale nie dołącza go do żadnych zadań. Aby dołączyć go do zadania, musisz użyć sp_attach_schedule
procedura.
Możesz także użyć sp_add_jobschedule
aby utworzyć harmonogram i dołączyć go wszystko w tej samej procedurze.
Przykład sp_add_schedule
Procedura
Oto przykład, który używa sp_add_schedule
aby utworzyć nowy harmonogram:
EXEC sp_add_schedule
@schedule_name = N'RunDailyAM',
@freq_type = 4,
@freq_interval = 4,
@active_start_time = 041000;
GO
Ta procedura składowana akceptuje więcej argumentów niż podałem w tym przykładzie, ale są to niektóre z bardziej powszechnych. W poniższych tabelach przedstawiono zarys akceptowanych wartości.
@schedule_name
jest wymaganym argumentem, ale pozostałe są opcjonalne i mają ustawienia domyślne na wypadek, gdyby ich nie podasz.
Możemy teraz użyć sp_attach_schedule
aby dołączyć ten harmonogram do istniejącego zadania:
EXEC sp_attach_schedule
@job_name = N'BackupPetHotelDB',
@schedule_name = N'RunDailyAM';
GO
Gdy używasz sp_attach_schedule
, musisz podać nazwę zadania lub jego identyfikator (ale nie oba), a także nazwę harmonogramu lub identyfikator (ale nie oba).
Przykład sp_add_jobschedule
Procedura
Oto przykład, który używa sp_add_jobschedule
aby utworzyć nowy harmonogram i dołączyć go do zadania, wszystko za jednym razem:
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;
Dzięki tej procedurze @job_name
argument zawiera nazwę zadania i @name
argument zawiera nazwę, którą chcesz nadać harmonogramowi.
Wartości parametrów
Sposób przechowywania danych harmonogramu w msdb baza danych sprawia, że jest to trochę trudne, jeśli chodzi o planowanie zadań za pomocą T-SQL.
Wartości daty/czasu są przechowywane jako int typy. Typ częstotliwości jest wyrażany jako int , podobnie jak wartości interwałów i różne inne opcje.
Poniżej znajduje się przegląd akceptowanych wartości parametrów podanych w powyższych przykładach.
@freq_type
Ten argument określa, kiedy zadanie ma zostać wykonane. Przyjmuje następujące wartości:
Wartość | Opis |
---|---|
1 | Raz |
4 | Codziennie |
8 | Co tydzień |
16 | Miesięcznie |
32 | Miesięcznie, względem freq_interval |
64 | Uruchom po uruchomieniu usługi SQL Agent |
128 | Uruchom, gdy komputer jest bezczynny |
@freq_interval
Ten argument określa dni, w których wykonywane jest zadanie.
Ten argument zależy od wartości @freq_type
argument, jak przedstawiono w poniższej tabeli:
Wartość freq_type | Wpływ na freq_interval |
---|---|
1 (raz) | freq_interval jest nieużywany. |
4 (codziennie) | Każdy freq_interval dni. |
8 (co tydzień) | freq_interval jest jednym lub więcej z poniższych (w połączeniu z OR operator logiczny):1 (Niedziela) 2 (Poniedziałek) 4 (Wtorek) 8 (Środa) 16 (Czwartek) 32 (Piątek) 64 (sobota) |
16 (miesięcznie) | W freq_interval dzień miesiąca. |
32 (względny miesięczny) | freq_interval jest jednym z następujących:1 (Niedziela) 2 (Poniedziałek) 3 (Wtorek) 4 (Środa) 5 (Czwartek) 6 (Piątek) 7 (Sobota) 8 (Dzień) 9 (Dzień powszedni) 10 (Dzień weekendu) |
64 (po uruchomieniu usługi SQLServerAgent) | freq_interval jest nieużywany. |
128 | freq_interval jest nieużywany. |
@freq_recurrence_factor
Określa liczbę tygodni lub miesięcy między zaplanowanym wykonaniem zadania.
To jest int , domyślnie 0
i jest używany tylko wtedy, gdy freq_type
to 8
, 16
lub 32
.
@active_start_time
Określa godzinę dowolnego dnia między @active_start_date
i @active_end_date
argumenty do rozpoczęcia wykonywania zadania. @active_start_time
jest int , z wartością domyślną 000000
, co oznacza 12:00:00 na zegarze 24-godzinnym i należy go wprowadzić w formularzu GGMMSS.
@active_start_date
Chociaż nie został uwzględniony w moich przykładach powyżej, @active_start_date
argument pozwala określić datę, w której może rozpocząć się wykonanie zadania. To jest int , z wartością domyślną NULL, która wskazuje dzisiejszą datę. Data ma format RRRRMMDD.
@active_end_date
Możesz również podać @active_end_date
argument, który określa datę, w której wykonanie zadania może zostać zatrzymane.
@active_end_date
jest int , z wartością domyślną 99991231
, co oznacza 31 grudnia 9999. Data ma format RRRRMMDD.
Więcej informacji
Zobacz dokumentację Microsoft dla sp_add_schedule
i/lub dokumentacja Microsoft dotycząca sp_add_jobschedule
aby uzyskać więcej informacji na temat różnych argumentów i ich akceptowanych wartości.