sql >> Database >  >> RDS >> Sqlserver

Een SQL Server Agent-schema wijzigen (T-SQL)

SQL Server Agent-schema's kunnen onafhankelijk van taken worden beheerd. Dit betekent dat u de planning direct kunt bijwerken zonder de taak zelf bij te werken.

U kunt dit doen met de sp_update_schedule opgeslagen procedure.

Voorbeeld

Maak het schema

Laten we eerst een schema maken:

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

We kunnen nu sp_update_schedule . gebruiken om dat schema te wijzigen.

Werk het schema bij

Hier is een voorbeeld van het bijwerken van het schema dat we zojuist hebben gemaakt.

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;

In dit geval heb ik de naam van het schema gewijzigd, evenals het frequentie-interval en de starttijd.

Merk op dat sp_update_schedule wijzigt alleen die instellingen waarvoor parameterwaarden worden opgegeven. Als een parameter wordt weggelaten, blijft de huidige instelling behouden.

Daarom, aangezien sommige van onze instellingen hetzelfde zijn gebleven (met name @freq_type en @freq_recurrence_factor ), hadden we die parameters helemaal kunnen weglaten.

Zoals dit:

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

Een schema uitschakelen

U kunt @enabled . instellen naar 0 om een ​​schema uit te schakelen.

Voorbeeld:

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

In dit voorbeeld heb ik ook de naam gewijzigd om duidelijk te maken dat de taak is uitgeschakeld.

Bekijk het schema

U kunt sp_help_schedule . gebruiken om de huidige instellingen van een schema te bekijken.

U kunt het met of zonder parameters gebruiken. Bij gebruik zonder parameters worden alle schema's geretourneerd.

EXEC sp_help_schedule;

Als je alleen de details van één schema wilt zien, kun je de naam of ID van het schema opgeven.

Zoals dit:

EXEC sp_help_schedule 
	@schedule_name = 'Weekly_Sun_4AM';

Hoewel u bij het opgeven van de naam de achternaam moet onthouden die u aan het schema hebt gegeven. In ons geval, als we deze procedure uitvoeren na het vorige voorbeeld (wanneer we het schema hadden uitgeschakeld), zouden we dit moeten doen:

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

De ID van het schema blijft echter constant, dus je zou dat kunnen gebruiken, ongeacht de naam van het schema.

Voorbeeld:

EXEC sp_help_schedule 
	@schedule_id = 16;

Als u de ID gebruikt, kunt u desgewenst de parameternaam weglaten.

Voorbeeld:

EXEC sp_help_schedule 16;

Wat gebeurt er met taken die gebruikmaken van het aangepaste schema?

Alle taken die gebruikmaken van de planning gebruiken direct de nieuwe instellingen. Het wijzigen van een planning stopt echter niet de taken die momenteel worden uitgevoerd.

Volledige syntaxis

De volledige syntaxis van sp_update_schedule gaat als volgt:

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 ]

Zie de documentatie van Microsoft voor sp_update_schedule voor een uitleg van elke parameter, evenals de waarden die elke parameter accepteert.


  1. hoe de datum naar tijd te veranderen in orakel 10g

  2. Postgres - hoe rijen met 0-tellingen te retourneren voor ontbrekende gegevens?

  3. MySQL-back-up- en herstelopdrachten voor databasebeheer

  4. Application_name instellen op Postgres/SQLAlchemy