Udostępnij za pomocą


sp_add_schedule (Transact-SQL)

Dotyczy:SQL ServerAzure SQL Managed Instance

Tworzy harmonogram, który może być używany przez dowolną liczbę zadań.

Transact-SQL konwencje składni

Składnia

sp_add_schedule
    [ @schedule_name = ] 'schedule_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' ]
    [ , [ @schedule_uid = ] schedule_uid OUTPUT ]
    [ , [ @schedule_id = ] schedule_id OUTPUT ]
    [ , [ @originating_server = ] server_name ] /* internal */
[ ; ]

Argumenty (w programowaniu)

@schedule_name [ = ] 'schedule_name'

Nazwa harmonogramu. @schedule_name jest nazwą systemu bez wartości domyślnej.

[ @enabled = ] włączone

Wskazuje bieżący stan harmonogramu. @enabled jest tinyint, z wartością domyślną 1 (włączoną). Jeśli 0harmonogram nie jest włączony. Jeśli harmonogram nie jest włączony, żadne zadania nie są uruchamiane zgodnie z tym harmonogramem.

@freq_type [ = ] freq_type

Wartość wskazująca, kiedy zadanie ma zostać wykonane. @freq_type jest int z wartością domyślną 0i może być jedną z tych wartości.

Wartość Opis
1 Raz
4 Codziennie
8 Co tydzień
16 Co miesiąc
32 Co miesiąc względem @freq_interval
64 Uruchamianie po uruchomieniu usługi SQL Server Agent
128 Uruchom polecenie , gdy komputer jest bezczynny (nieobsługiwany w usłudze Azure SQL Managed Instance)

@freq_interval [ = ] @freq_interval

Dni wykonywania zadania. @freq_interval jest int z wartością domyślną 1i zależy od wartości @freq_type.

Wartość @freq_type Wpływ na @freq_interval
1 (raz) @freq_interval jest nieużywany.
4 (codziennie) Co @freq_interval dni.
8 (co tydzień) @freq_interval jest co najmniej jedną z następujących wartości (w połączeniu z operatorem logicznym OR ):

1 = niedziela
2 = poniedziałek
4 = wtorek
8 = środa
16 = czwartek
32 = piątek
64 = sobota
16 (co miesiąc) W @freq_interval dniu miesiąca.
32 (miesięczny względny) @freq_interval jest jednym z następujących elementów:

1 = niedziela
2 = poniedziałek
3 = wtorek
4 = środa
5 = czwartek
6 = piątek
7 = sobota
8 = dzień
9 = Dzień powszedni
10 = Dzień weekendowy
64 (po uruchomieniu usługi SQLServerAgent) @freq_interval jest nieużywany.
128 @freq_interval jest nieużywany.

@freq_subday_type [ = ] freq_subday_type

Określa jednostki dla @freq_subday_interval. @freq_subday_type jest int, z wartością domyślną 0, i może być jedną z tych wartości.

Wartość Opis (jednostka)
1 O określonej godzinie
2 Sekundy
4 Minuty / Protokoły / Zapiski
8 Godziny

@freq_subday_interval [ = ] freq_subday_interval

Liczba okresów @freq_subday_type występujących między każdym wykonaniem zadania. @freq_subday_interval jest int z wartością domyślną 0. Interwał musi trwać co najmniej 10 sekund. @freq_subday_interval jest ignorowany w tych przypadkach, w których @freq_subday_type jest równa 1.

@freq_relative_interval [ = ] freq_relative_interval

Wystąpienie @freq_interval zadania w każdym miesiącu, jeśli @freq_interval wynosi 32 (miesięczny względny). @freq_relative_interval jest int z wartością domyślną 0i może być jedną z tych wartości. @freq_relative_interval jest ignorowany w tych przypadkach, gdy @freq_type nie jest równa 32.

Wartość Opis (jednostka)
1 Pierwszy
2 Sekunda
4 Trzeci
8 Czwarty
16 Ostatni

@freq_recurrence_factor [ = ] freq_recurrence_factor

Liczba tygodni lub miesięcy między zaplanowanym wykonaniem zadania. @freq_recurrence_factor jest używana tylko wtedy, gdy @freq_type to 8, 16lub 32. @freq_recurrence_factor jest int z wartością domyślną 0.

@active_start_date [ = ] active_start_date

Data rozpoczęcia wykonywania zadania. @active_start_date jest int z wartością domyślną NULL, która wskazuje bieżącą datę. Data jest sformatowana jako yyyyMMdd. Jeśli @active_start_date nie NULLjest , data musi być większa lub równa 19900101.

Po utworzeniu harmonogramu przejrzyj datę rozpoczęcia i upewnij się, że jest to prawidłowa data. Aby uzyskać więcej informacji, zobacz sekcję "Planowanie daty rozpoczęcia" w temacie Tworzenie i dołączanie harmonogramów do zadań.

W przypadku harmonogramów cotygodniowych lub miesięcznych agent ignoruje, czy @active_start_date jest w przeszłości, a zamiast tego używa bieżącej daty. Po utworzeniu harmonogramu agenta programu SQL Server przy użyciu sp_add_schedule opcji określenia parametru @active_start_date , który jest datą rozpoczęcia wykonywania zadania. Jeśli typ harmonogramu jest co tydzień lub co miesiąc, a parametr @active_start_date jest ustawiony na datę w przeszłości, parametr @active_start_date jest ignorowany, a bieżąca data jest używana dla @active_start_date.

@active_end_date [ = ] active_end_date

Data zatrzymania wykonywania zadania. @active_end_date jest int z wartością domyślną 99991231, która wskazuje 31 grudnia 9999. Sformatowany jako yyyyMMdd.

@active_start_time [ = ] active_start_time

Godzina w dowolnym dniu między @active_start_date a @active_end_date rozpoczęcia wykonywania zadania. @active_start_time jest int, z wartością domyślną 000000, która wskazuje 12:00:00 na zegarze 24-godzinnym i musi zostać wprowadzony przy użyciu formularza HHmmss.

@active_end_time [ = ] active_end_time

Godzina w dowolnym dniu między @active_start_date a @active_end_date do zakończenia wykonywania zadania. @active_end_time jest int, z wartością domyślną 235959, która wskazuje 11:59:59 PM na zegarze 24-godzinnym i musi zostać wprowadzony przy użyciu formularza HHmmss.

@owner_login_name [ = ] 'owner_login_name'

Nazwa podmiotu zabezpieczeń serwera, który jest właścicielem harmonogramu. @owner_login_name jest nazwą systemową z wartością domyślną NULL, która wskazuje, że harmonogram jest własnością twórcy.

[ @schedule_uid = ] schedule_uid DANE WYJŚCIOWE

Unikatowy identyfikator harmonogramu. @schedule_uid jest zmienną typu uniqueidentifier.

[ @schedule_id = ] schedule_id DANE WYJŚCIOWE

Identyfikator harmonogramu. @schedule_id jest zmienną typu int.

@originating_server [ = ] server_name

Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.

Zwracanie wartości kodu

0 (powodzenie) lub 1 (niepowodzenie).

Zestaw wyników

Żaden.

Uwagi

Program SQL Server Management Studio zapewnia łatwy, graficzny sposób zarządzania zadaniami i jest zalecanym sposobem tworzenia infrastruktury zadań i zarządzania nią.

Uprawnienia

Możesz udzielić EXECUTE uprawnień do tej procedury, ale te uprawnienia mogą zostać zastąpione podczas uaktualniania programu SQL Server.

Inni użytkownicy muszą otrzymać jedną z następujących stałych ról bazy danych programu SQL Server Agent w bazie danych msdb:

  • SQLAgentUserRole
  • SQLAgentReaderRole
  • SQLAgentOperatorRole

Aby uzyskać szczegółowe informacje o uprawnieniach tych ról, zobacz stałe role baz danych programu SQL Server Agent.

Przykłady

Odp. Tworzenie harmonogramu

Poniższy przykład tworzy harmonogram o nazwie RunOnce. Harmonogram jest uruchamiany jednorazowo w 23:30 dniu utworzenia harmonogramu.

USE msdb;
GO

EXECUTE dbo.sp_add_schedule
    @schedule_name = N'RunOnce',
    @freq_type = 1,
    @active_start_time = 233000;
GO

B. Tworzenie harmonogramu, dołączanie harmonogramu do wielu zadań

Poniższy przykład tworzy harmonogram o nazwie NightlyJobs. Zadania korzystające z tego harmonogramu są wykonywane codziennie, gdy czas na serwerze to 01:00. Przykład dołącza harmonogram do zadania BackupDatabase i zadania RunReports.

Uwaga / Notatka

W tym przykładzie przyjęto założenie, że zadanie BackupDatabase i zadanie RunReports już istnieją.

USE msdb;
GO

EXECUTE sp_add_schedule
    @schedule_name = N'NightlyJobs',
    @freq_type = 4,
    @freq_interval = 1,
    @active_start_time = 010000;
GO

EXECUTE sp_attach_schedule
    @job_name = N'BackupDatabase',
    @schedule_name = N'NightlyJobs';
GO

EXECUTE sp_attach_schedule
    @job_name = N'RunReports',
    @schedule_name = N'NightlyJobs';
GO