Dela via


sp_add_schedule (Transact-SQL)

gäller för:SQL ServerAzure SQL Managed Instance

Skapar ett schema som kan användas av valfritt antal jobb.

Transact-SQL syntaxkonventioner

Syntax

sp_add_schedule
    [ @schedule_name = ] 'schedule_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' ]
    [ , [ @schedule_uid = ] schedule_uid OUTPUT ]
    [ , [ @schedule_id = ] schedule_id OUTPUT ]
    [ , [ @originating_server = ] server_name ] /* internal */
[ ; ]

Argumentpunkter

[ @schedule_name = ] "schedule_name"

Namnet på schemat. @schedule_name är sysname, utan standard.

[ @enabled = ] aktiverad

Anger schemats aktuella status. @enabled är tinyint, med standardvärdet 1 (aktiverat). Om 0är schemat inte aktiverat. När schemat inte är aktiverat körs inga jobb enligt det här schemat.

@freq_type [ = ] freq_type

Ett värde som anger när ett jobb ska köras. @freq_type är int, med standardvärdet 0, och kan vara ett av dessa värden.

Värde Beskrivning
1 En gång
4 Varje dag
8 En gång i veckan
16 Månadsvis
32 Månadsvis, i förhållande till @freq_interval
64 Kör när SQL Server Agent-tjänsten startar
128 Kör när datorn är inaktiv (stöds inte i Azure SQL Managed Instance)

@freq_interval [ = ] @freq_interval

De dagar då ett jobb körs. @freq_interval är int, med standardvärdet 1, och beror på värdet för @freq_type.

Värdet för @freq_type Effekt på @freq_interval
1 (en gång) @freq_interval används inte.
4 (dagligen) Varje @freq_interval dagar.
8 (varje vecka) @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ånatligt) Den @freq_interval dagen i månaden.
32 (månatlig släkting) @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 används inte.
128 @freq_interval används inte.

@freq_subday_type [ = ] freq_subday_type

Anger enheterna för @freq_subday_interval. @freq_subday_type är int, med standardvärdet 0, och kan vara ett av dessa värden.

Värde Beskrivning (enhet)
1 Vid den angivna tidpunkten
2 Sekunder
4 Protokoll
8 Timmar

@freq_subday_interval [ = ] freq_subday_interval

Antalet @freq_subday_type perioder som ska utföras mellan varje körning av ett jobb. @freq_subday_interval är int, med standardvärdet 0. Intervallet måste vara minst 10 sekunder långt. @freq_subday_interval ignoreras i de fall där @freq_subday_type är lika 1med .

@freq_relative_interval [ = ] freq_relative_interval

Ett jobbs förekomst av @freq_interval varje månad, om @freq_interval är 32 (månatlig relativ). @freq_relative_interval är int, med standardvärdet 0, och kan vara ett av dessa värden. @freq_relative_interval ignoreras i de fall där @freq_type inte är lika med 32.

Värde Beskrivning (enhet)
1 Först
2 Sekund
4 Tredje
8 Fjärde
16 Sist

@freq_recurrence_factor [ = ] freq_recurrence_factor

Antalet veckor eller månader mellan den schemalagda körningen av ett jobb. @freq_recurrence_factor används endast om @freq_type är 8, 16eller 32. @freq_recurrence_factor är int, med standardvärdet 0.

@active_start_date [ = ] active_start_date

Det datum då körningen av ett jobb kan börja. @active_start_date är int, med standardvärdet NULL, vilket anger dagens datum. Datumet är formaterat som yyyyMMdd. Om @active_start_date inte NULLär det måste datumet vara större än eller lika med 19900101.

När schemat har skapats granskar du startdatumet och bekräftar att det är rätt datum. Mer information finns i avsnittet "Schemaläggning av startdatum" i Skapa och koppla scheman till jobb.

För vecko- eller månadsscheman ignorerar agenten om @active_start_date är tidigare och använder i stället det aktuella datumet. När ett SQL Server Agent-schema skapas med hjälp av sp_add_schedule finns det ett alternativ för att ange parametern @active_start_date som är det datum då jobbkörningen börjar. Om schematypen är vecko- eller månadsvis och parametern @active_start_date har angetts till ett datum tidigare ignoreras parametern @active_start_date och det aktuella datumet används för @active_start_date.

@active_end_date [ = ] active_end_date

Det datum då körningen av ett jobb kan stoppas. @active_end_date är int, med standardvärdet 99991231, vilket anger 31 december 9999. Formaterad som yyyyMMdd.

@active_start_time [ = ] active_start_time

Tiden på en dag mellan @active_start_date och @active_end_date för att påbörja körningen av ett jobb. @active_start_time är int, med standardvärdet 000000, som anger 12:00:00 på en 24-timmarsklocka och måste anges med hjälp av formuläret HHmmss.

@active_end_time [ = ] active_end_time

Tiden på en dag mellan @active_start_date och @active_end_date för att avsluta körningen av ett jobb. @active_end_time är int, med standardvärdet 235959, som anger 11:59:59 P.M. på en 24-timmarsklocka och måste anges med hjälp av formuläret HHmmss.

[ @owner_login_name = ] "owner_login_name"

Namnet på serverns huvudnamn som äger schemat. @owner_login_name är sysname, med standardvärdet NULL, vilket anger att schemat ägs av skaparen.

[ @schedule_uid = ] schedule_uid UTDATA

En unik identifierare för schemat. @schedule_uid är en variabel av typen uniqueidentifier.

[ @schedule_id = ] schedule_id UTDATA

En identifierare för schemat. @schedule_id är en variabel av typen int.

@originating_server [ = ] server_name

Identifieras endast i informationssyfte. Stöds inte. Framtida kompatibilitet garanteras inte.

Returnera kodvärden

0 (lyckades) eller 1 (fel).

Resultatuppsättning

Ingen.

Anmärkningar

SQL Server Management Studio är ett enkelt, grafiskt sätt att hantera jobb och är det rekommenderade sättet att skapa och hantera jobbinfrastrukturen.

Behörigheter

Du kan bevilja EXECUTE behörigheter för den här proceduren, men dessa behörigheter kan åsidosättas under en SQL Server-uppgradering.

Andra användare måste beviljas någon av följande fasta databasroller för SQL Server Agent i msdb-databasen:

  • SQLAgentUserRole
  • SQLAgentReaderRole
  • SQLAgentOperatorRole

Mer information om behörigheterna för dessa roller finns i SQL Server Agent Fixed Database Roles.

Exempel

A. Skapa ett schema

I följande exempel skapas ett schema med namnet RunOnce. Schemat körs en gång, på 23:30 den dag då schemat skapas.

USE msdb;
GO

EXECUTE dbo.sp_add_schedule
    @schedule_name = N'RunOnce',
    @freq_type = 1,
    @active_start_time = 233000;
GO

B. Skapa ett schema och koppla schemat till flera jobb

I följande exempel skapas ett schema med namnet NightlyJobs. Jobb som använder det här schemat körs varje dag när tiden på servern är 01:00. I exemplet kopplas schemat till jobbet BackupDatabase och jobbet RunReports.

Anmärkning

Det här exemplet förutsätter att jobbet BackupDatabase och jobbet RunReports redan finns.

USE msdb;
GO

EXECUTE sp_add_schedule
    @schedule_name = N'NightlyJobs',
    @freq_type = 4,
    @freq_interval = 1,
    @active_start_time = 010000;
GO

EXECUTE sp_attach_schedule
    @job_name = N'BackupDatabase',
    @schedule_name = N'NightlyJobs';
GO

EXECUTE sp_attach_schedule
    @job_name = N'RunReports',
    @schedule_name = N'NightlyJobs';
GO