sql >> Databáze >  >> RDS >> Sqlserver

Vytvořte plán SQL Server Agent Schedule pomocí T-SQL

Při používání T-SQL můžete použít sp_add_schedule uložená procedura pro přidání plánu SQL Server Agent.

Tento postup vytvoří plán, ale nepřipojí ho k žádné úloze. Chcete-li jej připojit k úloze, musíte použít sp_attach_schedule postup.

Můžete také použít sp_add_jobschedule vytvořte plán a připojte jej stejným postupem.

Příklad sp_add_schedule Postup

Zde je příklad, který používá sp_add_schedule pro vytvoření nového plánu:

EXEC sp_add_schedule 
    @schedule_name = N'RunDailyAM',
    @freq_type = 4,
    @freq_interval = 4,
    @active_start_time = 041000;
GO

Tato uložená procedura přijímá více argumentů, než jsem uvedl v tomto příkladu, ale toto jsou některé z běžnějších. Přehled přijatelných hodnot naleznete v tabulkách níže.

@schedule_name je povinný argument, ale ostatní jsou volitelné a mají výchozí nastavení pro případ, že je neuvedete.

Nyní můžeme použít sp_attach_schedule pro připojení tohoto plánu k existující úloze:


EXEC sp_attach_schedule  
   @job_name = N'BackupPetHotelDB',  
   @schedule_name = N'RunDailyAM';  
GO

Když používáte sp_attach_schedule , musíte zadat název úlohy nebo její ID (ale ne obojí) a také název nebo ID plánu (ale ne obojí).

Příklad sp_add_jobschedule Postup

Zde je příklad, který používá sp_add_jobschedule vytvořit nový plán a připojit jej k úloze, vše najednou:

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;

S tímto postupem @job_name argument poskytuje název úlohy a @name argument poskytuje název, který chcete dát plánu.

Hodnoty parametrů

Způsob, jakým jsou data plánu uložena v msdb databáze je trochu složitější, pokud jde o plánování úloh pomocí T-SQL.

Hodnoty data a času jsou uloženy jako int typy. Typ frekvence je vyjádřen jako int , stejně jako hodnoty intervalů a různé další možnosti.

Níže je uveden přehled akceptovaných hodnot parametrů uvedených ve výše uvedených příkladech.

@freq_type

Tento argument určuje, kdy se má úloha provést. Přijímá následující hodnoty:

Hodnota Popis
1 Jednou
4 Denně
8 Týdně
16 Měsíčně
32 Měsíčně, vzhledem k freq_interval
64 Spustit při spuštění služby SQL Agent
128 Spustit, když je počítač nečinný

@freq_interval

Tento argument určuje dny, kdy je úloha provedena.

Tento argument závisí na hodnotě @freq_type argument, jak je uvedeno v následující tabulce:

Hodnota freq_type Vliv na freq_interval
1 (jednou) freq_interval je nepoužitý.
4 (denně) Každý freq_interval dnů.
8 (týdně) freq_interval je jedna nebo více z následujících (v kombinaci s OR logický operátor):

1 (Neděle)

2 (Pondělí)

4 (Úterý)

8 (Středa)

16 (Čtvrtek)

32 (Pátek)

64 (sobota)
16 (měsíčně) Na freq_interval den v měsíci.
32 (měsíční relativní) freq_interval je jedním z následujících:

1 (Neděle)

2 (Pondělí)

3 (Úterý)

4 (Středa)

5 (Čtvrtek)

6 (Pátek)

7 (Sobota)

8 (Den)

9 (Všední den)

10 (Víkendový den)
64 (při spuštění služby SQLServerAgent) freq_interval je nepoužitý.
128 freq_interval je nepoužitý.

@freq_recurrence_factor

Toto určuje počet týdnů nebo měsíců mezi plánovaným provedením úlohy.

Toto je int , s výchozí hodnotou 0 a použije se pouze v případě, že freq_type je 8 , 16 nebo 32 .

@active_start_time

Určuje čas v kterýkoli den mezi @active_start_date a @active_end_date argumenty pro zahájení provádění úlohy. @active_start_time je int s výchozí hodnotou 000000 , což znamená 12:00:00 ve 24hodinovém formátu a je nutné jej zadat pomocí formuláře HHMMSS.

@active_start_date

Ačkoli to není zahrnuto v mých příkladech výše, @active_start_date argument umožňuje zadat datum, kdy může začít provádění úlohy. Toto je int , s výchozí hodnotou NULL, která označuje dnešní datum. Datum je ve formátu RRRRMMDD.

@active_end_date

Můžete také uvést @active_end_date argument, který určuje datum, kdy se může provádění úlohy zastavit.

@active_end_date je int s výchozí hodnotou 99991231 , což znamená 31. prosinec 9999. Datum je ve formátu RRRRMMDD.

Další informace

Viz dokumentaci společnosti Microsoft pro sp_add_schedule a/nebo dokumentaci společnosti Microsoft pro sp_add_jobschedule pro více podrobností o různých argumentech a jejich přijatých hodnotách.


  1. Nelze otevřít test databáze požadovaný přihlášením. Přihlášení se nezdařilo. Přihlášení pro uživatele 'xyz\ASPNET' se nezdařilo

  2. Konfigurace vysoké dostupnosti pro uzly ClusterControl pomocí CMON HA

  3. Důležitá změna Extended Events v SQL Server 2012

  4. OracleCommand SQL Parameters Binding