Delen via


sp_add_jobschedule (Transact-SQL)

Van toepassing op:SQL ServerAzure SQL Managed Instance

Maakt een schema aan voor een SQL Server Agent-taak.

Transact-SQL syntaxis-conventies

Belangrijk

Op Azure SQL Managed Instanceworden de meeste, maar niet alle FUNCTIES van SQL Server Agent momenteel ondersteund. Zie de verschillen tussen Azure SQL Managed Instance T-SQL en SQL Server voor details.

Syntaxis

sp_add_jobschedule
    [ [ @job_id = ] 'job_id' ]
    [ , [ @job_name = ] N'job_name' ]
    , [ @name = ] N'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 ]
    [ , [ @schedule_id = ] schedule_id OUTPUT ]
    [ , [ @automatic_post = ] automatic_post ]
    [ , [ @schedule_uid = ] 'schedule_uid' OUTPUT ]
[ ; ]

Arguments

[ @job_id = ] 'job_id'

Functieidentificatienummer van de functie waaraan het rooster is toegevoegd. @job_id is uniqueidentifier, met als standaard .NULL

Zowel @job_id als @job_name moeten worden gespecificeerd, maar beide kunnen niet worden gespecificeerd.

[ @job_name = ] N'job_name'

De naam van de baan waaraan het rooster wordt toegevoegd. @job_name is sysname, met als standaard .NULL

Zowel @job_id als @job_name moeten worden gespecificeerd, maar beide kunnen niet worden gespecificeerd.

[ @name = ] Naamloos

Naam van de planning. @name is een systeemnaam, zonder standaard.

[ @enabled = ] ingeschakeld

Geeft de huidige status van het schema aan. @enabled is Tinyint, met standaard ( 1 ingeschakeld). Als 0, is het schema niet ingeschakeld. Wanneer het schema is uitgeschakeld, wordt de taak niet uitgevoerd.

[ @freq_type = ] freq_type

Waarde die aangeeft wanneer de taak moet worden uitgevoerd. @freq_type is int, en kan een van de volgende waarden zijn:

Waarde Description
1 Eenmaal
4 Dagelijks
8 Weekly
16 Monthly
32 Maandelijks, relatief tot @freq_interval.
64 Voer uit wanneer de SQL Server Agent-service start.
128 Draai het als de computer inactief is.

[ @freq_interval = ] freq_interval

De dag dat de klus wordt uitgevoerd. @freq_interval is int, met een standaard van 0, en hangt af van de waarde van @freq_type zoals aangegeven in de volgende tabel:

Waarde van @freq_type Effect op @freq_interval
1 (één keer) @freq_interval wordt niet gebruikt.
4 (dagelijks) Elke @freq_interval dagen.
8 (wekelijks) @freq_interval is een of meer van de volgende (gecombineerd met een logische OR operator):

1 = Zondag
2 = Maandag
4 = Dinsdag
8 = Woensdag
16 = Donderdag
32 = Vrijdag
64 = Zaterdag
16 (maandelijks) Op de @freq_interval dag van de maand.
32 (maandelijkse familielid) @freq_interval is een van de volgende:

1 = Zondag
2 = Maandag
3 = Dinsdag
4 = Woensdag
5 = Donderdag
6 = Vrijdag
7 = Zaterdag
8 = Dag
9 = Doordeweekse dag
10 = Weekenddag
64 (wanneer de SQL Server Agent-service start) @freq_interval wordt niet gebruikt.
128 @freq_interval wordt niet gebruikt.

[ @freq_subday_type = ] freq_subday_type

Specificeert de eenheden voor @freq_subday_interval. @freq_subday_type is int, en kan een van deze waarden zijn:

Waarde Beschrijving (eenheid)
1 Op het opgegeven tijdstip
2 Seconden
4 Notulen
8 Hours

[ @freq_subday_interval = ] freq_subday_interval

Aantal @freq_subday_type periodes tussen elke uitvoering van de taak. @freq_subday_interval is int, met als standaard .0

[ @freq_relative_interval = ] freq_relative_interval

Verder definieert het @freq_interval wanneer @freq_type wordt ingesteld op 32 (maandelijkse relatieve).

@freq_relative_interval is int, en kan een van deze waarden zijn:

Waarde Beschrijving (eenheid)
1 First
2 Second
4 Derde
8 Vierde
16 Laatste

@freq_relative_interval geeft het voorkomen van het interval aan. Als bijvoorbeeld @freq_relative_interval is ingesteld op 2, @freq_type is ingesteld op 32, en @freq_interval is ingesteld op 3, zou de geplande taak plaatsvinden op de tweede dinsdag van elke maand.

[ @freq_recurrence_factor = ] freq_recurrence_factor

Aantal weken of maanden tussen de geplande uitvoering van de klus. @freq_recurrence_factor is int, met als standaard .0 @freq_recurrence_factor wordt alleen gebruikt als @freq_type is ingesteld op 8, 16, of 32.

[ @active_start_date = ] active_start_date

De datum waarop de uitvoering van de taak kan beginnen. @active_start_date is int, met een standaard van NULL. De datum is opgemaakt als yyyyMMdd. Als @active_start_date is vastgesteld, moet de datum groter zijn dan of gelijk aan 19900101.

Nadat het rooster is gemaakt, bekijk je de startdatum en bevestig je dat het de juiste datum is. Voor meer informatie, zie de sectie "Scheduling Start Date" in Schedules maken en koppelen aan opdrachten.

[ @active_end_date = ] active_end_date

De datum waarop de uitvoering van de taak kan stoppen. @active_end_date is int, met als standaard .99991231 De datum is opgemaakt als yyyyMMdd.

[ @active_start_time = ] active_start_time

De tijd op elke dag tussen @active_start_date en @active_end_date om te beginnen met het uitvoeren van het werk. @active_start_time is int, met als standaard .000000 De tijd is opgemaakt als HHmmss een 24-uurs klok.

[ @active_end_time = ] active_end_time

De tijd op elke dag tussen active_start_date en @active_end_date om de uitvoering van het werk af te ronden. @active_end_time is int, met als standaard .235959 De tijd is opgemaakt als HHmmss een 24-uurs klok.

[ @schedule_id = ] schedule_id UITGANG

Schemaidentificatienummer toegewezen aan het schema als het succesvol is aangemaakt. @schedule_id is een OUTPUT-parameter van het type int.

[ @automatic_post = ] automatic_post

Alleen ter informatie geïdentificeerd. Wordt niet ondersteund. Toekomstige compatibiliteit is niet gegarandeerd.

[ @schedule_uid = ] 'schedule_uid' OUTPUT

Een unieke identificatie voor het schema. @schedule_uid is een OUTPUT-parameter van het type uniqueidentifier.

Codewaarden retourneren

0 (geslaagd) of 1 (mislukt).

Resultaatset

Geen.

Opmerkingen

Jobroosters kunnen nu onafhankelijk van de taken worden beheerd. Om een schema aan een taak toe te voegen, gebruik sp_add_schedule je het om het schema te maken en sp_attach_schedule het schema aan een taak te koppelen.

Permissions

Je kunt rechten verlenen EXECUTE op deze procedure, maar deze rechten kunnen worden overschreven tijdens een SQL Server-upgrade.

Andere gebruikers moeten een van de volgende vaste SQL Server Agent-databaserollen in de msdb database krijgen:

  • SQLAgentUserRole
  • SQLAgentReaderRole
  • SQLAgentOperatorRole

Voor details over de rechten van deze rollen, zie SQL Server Agent Fixed Database Roles.

Voorbeelden

Het volgende voorbeeld wijst een taakschema toe aan SaturdayReports, dat elke zaterdag om 2:00 uur 's nachts wordt uitgevoerd.

EXECUTE msdb.dbo.sp_add_jobschedule
    @job_name = N'SaturdayReports', -- Job name
    @name = N'Weekly_Sat_2AM', -- Schedule name
    @freq_type = 8, -- Weekly
    @freq_interval = 64, -- Saturday
    @freq_recurrence_factor = 1, -- every week
    @active_start_time = 20000; -- 2:00 AM