Sdílet prostřednictvím


sp_add_schedule (Transact-SQL)

platí pro:SQL Serverazure SQL Managed Instance

Vytvoří plán, který může používat libovolný počet úloh.

Transact-SQL konvence syntaxe

Syntaxe

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

@schedule_name [ = ] 'schedule_name'

Název plánu. @schedule_name je sysname bez výchozího nastavení.

[ @enabled = ] povoleno

Označuje aktuální stav plánu. @enabled je tinyint s výchozím nastavením 1 (povoleno). Pokud 0není plán povolený. Pokud plán není povolený, nespustí se v tomto plánu žádné úlohy.

@freq_type [ = ] freq_type

Hodnota označující, kdy má být úloha spuštěna. @freq_type je int, s výchozí hodnotou 0a může to být jedna z těchto hodnot.

Hodnota Popis
1 Jednou
4 Každý den
8 Každý týden
16 Měsíčně
32 Měsíčně vzhledem k @freq_interval
64 Spuštění při spuštění služby agenta SQL Serveru
128 Spuštění, když je počítač nečinný (nepodporuje se ve službě Azure SQL Managed Instance)

@freq_interval [ = ] @freq_interval

Dny, po které se úloha spustí. @freq_interval je int, s výchozím 1nastavením a závisí na hodnotě @freq_type.

Hodnota @freq_type Vliv na @freq_interval
1 (jednou) @freq_interval se nepoužívá.
4 (denně) Každé @freq_interval dny.
8 (týdně) @freq_interval je jedna nebo více z následujících hodnot (v kombinaci s logickým operátorem OR ):

1 = neděle
2 = pondělí
4 = úterý
8 = středa
16 = čtvrtek
32 = pátek
64 = sobota
16 (měsíčně) V @freq_interval den v měsíci.
32 (měsíční relativní) @freq_interval je jedna z následujících možností:

1 = neděle
2 = pondělí
3 = úterý
4 = středa
5 = čtvrtek
6 = pátek
7 = sobota
8 = Den
9 = Pracovní den
10 = Víkendový den
64 (při spuštění služby SQLServerAgent) @freq_interval se nepoužívá.
128 @freq_interval se nepoužívá.

@freq_subday_type [ = ] freq_subday_type

Určuje jednotky pro @freq_subday_interval. @freq_subday_type je int, s výchozím nastavením 0a může být jednou z těchto hodnot.

Hodnota Popis (jednotka)
1 V zadaném čase
2 Sekundy
4 Zápis
8 Hodiny

@freq_subday_interval [ = ] freq_subday_interval

Počet @freq_subday_type období mezi každým spuštěním úlohy. @freq_subday_interval je int s výchozím nastavením 0. Interval musí mít délku nejméně 10 sekund. @freq_subday_interval je ignorován v těchto případech, kdy @freq_subday_type je rovno 1.

@freq_relative_interval [ = ] freq_relative_interval

Výskyt @freq_interval úlohy v každém měsíci, pokud je @freq_interval 32 (relativní měsíční). @freq_relative_interval je int, s výchozím nastavením 0a může být jednou z těchto hodnot. @freq_relative_interval se v takových případech ignoruje , pokud @freq_type není rovna 32.

Hodnota Popis (jednotka)
1 První
2 Sekunda
4 Třetí
8 Čtvrtý
16 Poslední

@freq_recurrence_factor [ = ] freq_recurrence_factor

Počet týdnů nebo měsíců mezi plánovaným spuštěním úlohy. @freq_recurrence_factor se používá pouze v případě, že @freq_type je 8, 16nebo 32. @freq_recurrence_factor je int, s výchozí hodnotou 0.

@active_start_date [ = ] active_start_date

Datum zahájení provádění úlohy. @active_start_date je int s výchozím nastavením NULL, který označuje dnešní datum. Datum je formátováno jako yyyyMMdd. Pokud @active_start_date není NULL, datum musí být větší nebo rovno 19900101.

Po vytvoření plánu zkontrolujte počáteční datum a ověřte, že se jedná o správné datum. Další informace najdete v části Plánování počátečního data v části Vytvoření a připojení plánů k úlohám.

U týdenních nebo měsíčních plánů agent ignoruje, pokud @active_start_date je v minulosti, a místo toho používá aktuální datum. Pokud je vytvořen plán agenta SQL Serveru pomocí sp_add_schedule možnosti zadat parametr @active_start_date , které je datum zahájení spuštění úlohy. Pokud je typ plánu týdenní nebo měsíční a parametr @active_start_date je nastavený na datum v minulosti, parametr @active_start_date se ignoruje a pro @active_start_date se použije aktuální datum.

@active_end_date [ = ] active_end_date

Datum, kdy může být spuštění úlohy zastaveno. @active_end_date je int s výchozím nastavením 99991231, který označuje 31. prosince 9999. Formátováno jako yyyyMMdd.

@active_start_time [ = ] active_start_time

Čas v libovolném dni mezi @active_start_date a @active_end_date pro zahájení provádění úlohy. @active_start_time je int, s výchozí hodnotou 000000, která označuje 12:00:00 do 24hodinových hodin a musí být zadána pomocí formuláře HHmmss.

@active_end_time [ = ] active_end_time

Čas v libovolném dni mezi @active_start_date a @active_end_date ukončením provádění úlohy. @active_end_time je int, s výchozí 235959hodnotou , která označuje 11:59:59 p.M. ve 24hodinovém formátu a musí být zadán pomocí formuláře HHmmss.

@owner_login_name [ = ] 'owner_login_name'

Název objektu zabezpečení serveru, který vlastní plán. @owner_login_name je sysname s výchozím nastavením NULL, který označuje, že plán vlastní tvůrce.

[ @schedule_uid = ] schedule_uid VÝSTUP

Jedinečný identifikátor plánu. @schedule_uid je proměnná typu uniqueidentifier.

[ @schedule_id = ] schedule_id VÝSTUP

Identifikátor plánu. @schedule_id je proměnná typu int.

@originating_server [ = ] server_name

Určeno pouze pro informační účely. Není podporováno. Budoucí kompatibilita není zaručena.

Hodnoty návratového kódu

0 (úspěch) nebo 1 (selhání).

Sada výsledků

Žádné.

Poznámky

SQL Server Management Studio poskytuje snadný, grafický způsob správy úloh a je doporučený způsob, jak vytvořit a spravovat infrastrukturu úloh.

Povolení

K tomuto postupu můžete udělit oprávnění EXECUTE, ale tato oprávnění se můžou při upgradu SQL Serveru přepsat.

Jiným uživatelům musí být udělena jedna z následujících pevných databázových rolí agenta SQL Serveru v databázi msdb:

  • SQLAgentUserRole
  • SQLAgentReaderRole
  • SQLAgentOperatorRole

Podrobnosti o oprávněních těchto rolí najdete v části Pevné databázové role agenta SQL Server.

Příklady

A. Vytvoření plánu

Následující příklad vytvoří plán s názvem RunOnce. Plán se spustí jednou v 23:30 den vytvoření plánu.

USE msdb;
GO

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

B. Vytvoření plánu a připojení plánu k více úloh

Následující příklad vytvoří plán s názvem NightlyJobs. Úlohy, které používají tento plán, se spouštějí každý den, když je 01:00čas na serveru . Příklad připojí plán k úloze BackupDatabase a úloze RunReports.

Poznámka:

Tento příklad předpokládá, že úloha BackupDatabase a úloha RunReports již existují.

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