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

Úprava plánu agenta SQL Server (T-SQL)

Plány SQL Server Agent lze spravovat nezávisle na úlohách. To znamená, že můžete plán aktualizovat přímo bez aktualizace samotné úlohy.

Můžete to udělat pomocí sp_update_schedule uložená procedura.

Příklad

Vytvořte plán

Nejprve vytvořte plán:

EXEC sp_add_schedule 
    @schedule_name = N'Weekly_Sat_1AM',
    @freq_type = 8,
    @freq_interval = 64,
    @freq_recurrence_factor = 1,
    @active_start_time = 10000;

Nyní můžeme použít sp_update_schedule upravit tento plán.

Aktualizujte plán

Zde je příklad aktualizace rozvrhu, který jsme právě vytvořili.

EXEC sp_update_schedule 
    @name = N'Weekly_Sat_1AM',
    @new_name = N'Weekly_Sun_4AM',
    @freq_type = 8,
    @freq_interval = 1,
    @freq_recurrence_factor = 1,
    @active_start_time = 40000;

V tomto případě jsem změnil název plánu, stejně jako interval frekvence a čas zahájení.

Všimněte si, že sp_update_schedule změní pouze ta nastavení, pro která jsou dodány hodnoty parametrů. Pokud je parametr vynechán, aktuální nastavení zůstane zachováno.

Protože některá z našich nastavení zůstala stejná (konkrétně @freq_type a @freq_recurrence_factor ), mohli jsme tyto parametry úplně vynechat.

Takhle:

EXEC sp_update_schedule 
    @name = N'Weekly_Sat_1AM',
    @new_name = N'Weekly_Sun_4AM',
    @freq_interval = 1,
    @active_start_time = 40000;

Zakázat plán

Můžete nastavit @enabled na 0 zakázat plán.

Příklad:

EXEC sp_update_schedule 
    @name = N'Weekly_Sun_4AM',
    @new_name = N'Weekly_Sun_4AM (DISABLED)',
    @enabled = 0;

V tomto příkladu jsem také změnil název, aby bylo zřejmé, že úloha je zakázána.

Zkontrolujte plán

Můžete použít sp_help_schedule pro zobrazení aktuálního nastavení plánu.

Můžete jej použít s parametry nebo bez nich. Při použití bez parametrů vrátí všechny plány.

EXEC sp_help_schedule;

Pokud chcete vidět pouze podrobnosti jednoho plánu, můžete zadat název nebo ID plánu.

Asi takto:

EXEC sp_help_schedule 
	@schedule_name = 'Weekly_Sun_4AM';

I když při zadávání jména si budete muset zapamatovat příjmení, které jste dali rozvrhu. V našem případě, pokud spustíme tento postup po předchozím příkladu (když jsme deaktivovali plán), museli bychom udělat toto:

EXEC sp_help_schedule 
	@schedule_name = 'Weekly_Sun_4AM (DISABLED)';

ID plánu však zůstává konstantní, takže jej můžete použít bez ohledu na název plánu.

Příklad:

EXEC sp_help_schedule 
	@schedule_id = 16;

Při použití ID můžete název parametru vynechat, chcete-li.

Příklad:

EXEC sp_help_schedule 16;

Co se stane s úlohami, které používají upravený rozvrh?

Všechny úlohy, které používají plán, okamžitě použijí nová nastavení. Změna plánu však nezastaví úlohy, které právě běží.

Úplná syntaxe

Úplná syntaxe sp_update_schedule vypadá takto:

sp_update_schedule   
    {   [ @schedule_id = ] schedule_id   
      | [ @name = ] 'schedule_name' }  
    [ , [ @new_name = ] new_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' ]  
    [ , [ @automatic_post =] automatic_post ]

Viz dokumentaci společnosti Microsoft pro sp_update_schedule pro vysvětlení každého parametru a také hodnot, které každý přijímá.


  1. Najít přidružení mezi databázovými poštovními účty a principy databáze v SQL Server (T-SQL)

  2. PDO:Server MySQL odešel

  3. 15 Základní otázky k rozhovoru s MySQL pro správce databází

  4. rozdíl mezi klauzulí ON a použitím klauzule v sql