Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Utwórz harmonogram agentów SQL Server za pomocą T-SQL

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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Co to jest Azure Data Studio?

  2. Kiedy używać EXCEPT w przeciwieństwie do NOT EXISTS w Transact SQL?

  3. Jak wyświetlić sortowanie kolumny w SQL Server (T-SQL)

  4. Dzielenie wartości rozdzielanych w kolumnie SQL na wiele wierszy

  5. Utwórz bazę danych SQL Server za pomocą SQLOPS