Når du bruger T-SQL, kan du bruge sp_add_schedule
gemt procedure for at tilføje en SQL Server Agent-plan.
Denne procedure opretter tidsplanen, men den knytter den ikke til nogen job. For at vedhæfte det til et job, skal du bruge sp_attach_schedule
procedure.
Du kan også bruge sp_add_jobschedule
at oprette tidsplanen og vedhæfte det hele med samme procedure.
Eksempel på sp_add_schedule
Fremgangsmåde
Her er et eksempel, der bruger sp_add_schedule
for at oprette en ny tidsplan:
EXEC sp_add_schedule
@schedule_name = N'RunDailyAM',
@freq_type = 4,
@freq_interval = 4,
@active_start_time = 041000;
GO
Denne lagrede procedure accepterer flere argumenter, end jeg har inkluderet i dette eksempel, men disse er nogle af de mere almindelige. Se tabellerne nedenfor for en oversigt over de accepterede værdier.
@schedule_name
er et påkrævet argument, men de andre er valgfrie og har standardindstillinger, hvis du ikke angiver dem.
Vi kan nu bruge sp_attach_schedule
for at vedhæfte denne tidsplan til et eksisterende job:
EXEC sp_attach_schedule
@job_name = N'BackupPetHotelDB',
@schedule_name = N'RunDailyAM';
GO
Når du bruger sp_attach_schedule
, skal du angive navnet på jobbet eller dets ID (men ikke begge), samt tidsplanens navn eller ID (men ikke begge dele).
Eksempel på sp_add_jobschedule
Fremgangsmåde
Her er et eksempel, der bruger sp_add_jobschedule
at oprette en ny tidsplan og vedhæfte den til et job, alt på én gang:
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;
Med denne procedure vises @job_name
argument giver jobnavnet og @name
argument giver det navn, du vil give til tidsplanen.
Parameterværdier
Den måde, tidsplandata gemmes på i msdb database gør det en smule vanskeligt, når det kommer til at planlægge job med T-SQL.
Dato/tidsværdier gemmes som int typer. Frekvenstype er udtrykt som en int , ligesom intervalværdierne og forskellige andre muligheder.
Nedenfor er en oversigt over de accepterede værdier for parametrene i ovenstående eksempler.
@freq_type
Dette argument angiver, hvornår et job skal udføres. Den accepterer følgende værdier:
Værdi | Beskrivelse |
---|---|
1 | En gang |
4 | Dagligt |
8 | Ugentligt |
16 | Månedligt |
32 | Månedligt i forhold til freq_interval |
64 | Kør, når SQL Agent-tjenesten starter |
128 | Kør, når computeren er inaktiv |
@freq_interval
Dette argument angiver de dage, et job udføres.
Dette argument afhænger af værdien af @freq_type
argument, som skitseret i følgende tabel:
Værdi af freq_type | Effekt på freq_interval |
---|---|
1 (en gang) | freq_interval er ubrugt. |
4 (dagligt) | Hver freq_interval dage. |
8 (ugentlig) | freq_interval er en eller flere af følgende (kombineret med en OR logisk operator):1 (Søndag) 2 (Mandag) 4 (Tirsdag) 8 (Onsdag) 16 (Torsdag) 32 (Fredag) 64 (lørdag) |
16 (månedligt) | På freq_interval dag i måneden. |
32 (månedlig relativ) | freq_interval er en af følgende:1 (Søndag) 2 (Mandag) 3 (Tirsdag) 4 (Onsdag) 5 (Torsdag) 6 (Fredag) 7 (Lørdag) 8 (Dag) 9 (Ugedag) 10 (Weekenddag) |
64 (når SQLServerAgent-tjenesten starter) | freq_interval er ubrugt. |
128 | freq_interval er ubrugt. |
@freq_recurrence_factor
Dette angiver antallet af uger eller måneder mellem den planlagte udførelse af et job.
Dette er int , med en standard på 0
, og bruges kun hvis freq_type
er 8
, 16
eller 32
.
@active_start_time
Angiver tidspunktet på en hvilken som helst dag mellem @active_start_date
og @active_end_date
argumenter for at påbegynde udførelsen af et job. @active_start_time
er int , med en standard på 000000
, hvilket angiver 12:00:00 A.M. på et 24-timers ur, og skal indtastes på formularen HHMMSS.
@active_start_date
Selvom det ikke er inkluderet i mine eksempler ovenfor, er @active_start_date
argument giver dig mulighed for at angive datoen, hvor udførelsen af et job kan begynde. Dette er int , med standardværdien NULL, som angiver dagens dato. Datoen er formateret som ÅÅÅÅMMDD.
@active_end_date
Du kan også angive en @active_end_date
argument, som angiver datoen, hvor udførelsen af et job kan stoppe.
@active_end_date
er int , med en standard på 99991231
, som angiver 31. december 9999. Datoen er formateret som ÅÅÅÅMMDD.
Flere oplysninger
Se Microsofts dokumentation for sp_add_schedule
og/eller Microsofts dokumentation for sp_add_jobschedule
for flere detaljer om de forskellige argumenter og deres accepterede værdier.