NÀr du anvÀnder T-SQL kan du anvÀnda sp_add_schedule
lagrad procedur för att lÀgga till ett SQL Server Agent-schema.
Denna procedur skapar schemat, men den kopplar inte till nÄgra jobb. För att bifoga det till ett jobb mÄste du anvÀnda sp_attach_schedule
förfarande.
Du kan ocksÄ anvÀnda sp_add_jobschedule
för att skapa schemat och bifoga allt med samma procedur.
Exempel pÄ sp_add_schedule
Procedur
HÀr Àr ett exempel som anvÀnder sp_add_schedule
för att skapa ett nytt schema:
EXEC sp_add_schedule
@schedule_name = N'RunDailyAM',
@freq_type = 4,
@freq_interval = 4,
@active_start_time = 041000;
GO
Denna lagrade procedur accepterar fler argument Àn jag har inkluderat i det hÀr exemplet, men dessa Àr nÄgra av de vanligaste. Se tabellerna nedan för en översikt över de accepterade vÀrdena.
@schedule_name
Àr ett obligatoriskt argument, men de andra Àr valfria och har standardinstÀllningar om du inte anger dem.
Vi kan nu anvÀnda sp_attach_schedule
för att bifoga det schemat till ett befintligt jobb:
EXEC sp_attach_schedule
@job_name = N'BackupPetHotelDB',
@schedule_name = N'RunDailyAM';
GO
NÀr du anvÀnder sp_attach_schedule
, mÄste du ange namnet pÄ jobbet eller dess ID (men inte bÄda), samt schemanamnet eller ID (men inte bÄda).
Exempel pÄ sp_add_jobschedule
Procedur
HÀr Àr ett exempel som anvÀnder sp_add_jobschedule
för att skapa ett nytt schema och bifoga det till ett jobb, allt pÄ en gÄng:
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 denna procedur visas @job_name
argumentet ger jobbnamnet och @name
argument ger namnet som du vill ge till schemat.
ParametervÀrden
Hur schemadata lagras i msdb databasen gör det lite knepigt nÀr det gÀller att schemalÀgga jobb med T-SQL.
Datum/tid-vÀrden lagras som int typer. Frekvenstyp uttrycks som en int , liksom intervallvÀrdena och olika andra alternativ.
Nedan finns en översikt över de accepterade vÀrdena för parametrarna i exemplen ovan.
@freq_type
Detta argument anger nÀr ett jobb ska köras. Den accepterar följande vÀrden:
VĂ€rde | Beskrivning |
---|---|
1 | En gÄng |
4 | Dagligen |
8 | Veckovis |
16 | MĂ„natlig |
32 | MÄnatlig, i förhÄllande till freq_interval |
64 | Kör nÀr SQL Agent-tjÀnsten startar |
128 | Kör nÀr datorn Àr inaktiv |
@freq_interval
Detta argument anger dagar som ett jobb körs.
Detta argument beror pÄ vÀrdet för @freq_type
argument, som beskrivs i följande tabell:
VÀrde pÄ freq_type | Effekt pÄ freq_interval |
---|---|
1 (en gÄng) | freq_interval Àr oanvÀnd. |
4 (dagligen) | Varje freq_interval dagar. |
8 (veckovis) | freq_interval Àr ett eller flera av följande (kombinerat med en OR logisk operator):1 (söndag) 2 (mÄndag) 4 (tisdag) 8 (onsdag) 16 (torsdag) 32 (Fredag) 64 (lördag) |
16 (mÄnadsvis) | PÄ freq_interval dag i mÄnaden. |
32 (mÄnatlig relativ) | freq_interval Àr nÄgot av följande:1 (söndag) 2 (mÄndag) 3 (tisdag) 4 (onsdag) 5 (torsdag) 6 (Fredag) 7 (lördag) 8 (Dag) 9 (Veckodag) 10 (helgdag) |
64 (nÀr SQLServerAgent-tjÀnsten startar) | freq_interval Àr oanvÀnd. |
128 | freq_interval Àr oanvÀnd. |
@freq_recurrence_factor
Detta anger antalet veckor eller mÄnader mellan det schemalagda utförandet av ett jobb.
Det hÀr Àr int , med standardvÀrdet 0
, och anvÀnds endast om freq_type
Ă€r 8
, 16
eller 32
.
@active_start_time
Anger tiden pÄ vilken dag som helst mellan @active_start_date
och @active_end_date
argument för att börja utföra ett jobb. @active_start_time
Àr int , med standardvÀrdet 000000
, vilket indikerar 12:00:00 A.M. pÄ en 24-timmars klocka och mÄste anges med formulÀret HHMMSS.
@active_start_date
Ăven om det inte ingĂ„r i mina exempel ovan, @active_start_date
argument lĂ„ter dig ange datumet dĂ„ utförandet av ett jobb kan börja. Det hĂ€r Ă€r int , med standardvĂ€rdet NULL, vilket anger dagens datum. Datumet Ă€r formaterat som Ă
Ă
Ă
Ă
MMDD.
@active_end_date
Du kan ocksÄ ange en @active_end_date
argument, som anger datumet dÄ utförandet av ett jobb kan stoppas.
@active_end_date
Àr int , med standardvÀrdet 99991231
, vilket indikerar 31 december 9999. Datumet Ă€r formaterat som Ă
Ă
Ă
Ă
MMDD.
Mer information
Se Microsofts dokumentation för sp_add_schedule
och/eller Microsofts dokumentation för sp_add_jobschedule
för mer information om de olika argumenten och deras accepterade vÀrden.