sql >> Database teknologi >  >> RDS >> Sqlserver

Rediger en SQL Server Agent Schedule (T-SQL)

SQL Server Agent tidsplaner kan administreres uafhængigt af job. Det betyder, at du kan opdatere tidsplanen direkte uden at opdatere selve jobbet.

Du kan gøre dette med sp_update_schedule gemt procedure.

Eksempel

Opret tidsplanen

Lad os først oprette en tidsplan:

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

Vi kan nu bruge sp_update_schedule for at ændre den tidsplan.

Opdater tidsplanen

Her er et eksempel på opdatering af den tidsplan, vi lige har oprettet.

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;

I dette tilfælde ændrede jeg navnet på tidsplanen samt frekvensintervallet og starttidspunktet.

Bemærk at sp_update_schedule ændrer kun de indstillinger, for hvilke parameterværdier er leveret. Hvis en parameter udelades, bibeholdes den aktuelle indstilling.

Derfor, da nogle af vores indstillinger forblev de samme (specifikt @freq_type og @freq_recurrence_factor ), kunne vi have udeladt disse parametre helt.

Sådan:

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

Deaktiver en tidsplan

Du kan indstille @enabled til 0 for at deaktivere en tidsplan.

Eksempel:

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

I dette eksempel ændrede jeg også navnet for at gøre det tydeligt, at jobbet er deaktiveret.

Tjek skemaet

Du kan bruge sp_help_schedule for at se de aktuelle indstillinger for en tidsplan.

Du kan bruge den med eller uden parametre. Når den bruges uden parametre, returnerer den alle tidsplaner.

EXEC sp_help_schedule;

Hvis du kun ønsker at se detaljerne for én tidsplan, kan du angive tidsplanens navn eller ID.

Sådan:

EXEC sp_help_schedule 
	@schedule_name = 'Weekly_Sun_4AM';

Selvom du, når du angiver navnet, skal huske det efternavn, du gav tidsplanen. I vores tilfælde, hvis vi kører denne procedure efter det forrige eksempel (da vi deaktiverede tidsplanen), skulle vi gøre dette:

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

Tidsplanens ID forbliver dog konstant, så du kan bruge det uanset tidsplanens navn.

Eksempel:

EXEC sp_help_schedule 
	@schedule_id = 16;

Når du bruger ID'et, kan du udelade parameternavnet, hvis du ønsker det.

Eksempel:

EXEC sp_help_schedule 16;

Hvad sker der med job, der bruger den ændrede tidsplan?

Alle job, der bruger tidsplanen, bruger straks de nye indstillinger. Ændring af en tidsplan stopper dog ikke job, der kører i øjeblikket.

Fuld syntaks

Den fulde syntaks for sp_update_schedule går sådan her:

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 ]

Se Microsofts dokumentation for sp_update_schedule for en forklaring af hver parameter, samt de værdier, som hver accepterer.


  1. Tablix:Gentag overskriftsrækker på hver side, der ikke virker - Report Builder 3.0

  2. SQL-forespørgsel til at oprette tabel i MySQL

  3. Reparation af Postgresql efter opgradering til OSX 10.7 Lion

  4. Sådan fungerer SQLite Rtrim()