Delen via


sp_add_schedule (Transact-SQL)

Van toepassing op:SQL ServerAzure SQL Managed Instance

Hiermee maakt u een schema dat door een willekeurig aantal taken kan worden gebruikt.

Transact-SQL syntaxis-conventies

Syntaxis

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 */
[ ; ]

Argumenten

@schedule_name [ = ] 'schedule_name'

De naam van de planning. @schedule_name is sysname, zonder standaardwaarde.

[ @enabled = ] ingeschakeld

Geeft de huidige status van de planning aan. @enabledis klein, met een standaardwaarde van 1 (ingeschakeld). Als 0de planning niet is ingeschakeld. Wanneer de planning niet is ingeschakeld, worden er geen taken uitgevoerd volgens deze planning.

@freq_type [ = ] freq_type

Een waarde die aangeeft wanneer een taak moet worden uitgevoerd. @freq_type is int, met een standaardwaarde 0en kan een van deze waarden zijn.

Waarde Beschrijving
1 Eenmaal
4 Dagelijks
8 Wekelijks
16 Maandelijks
32 Maandelijks ten opzichte van @freq_interval
64 Uitvoeren wanneer de SQL Server Agent-service wordt gestart
128 Uitvoeren wanneer de computer niet actief is (niet ondersteund in Azure SQL Managed Instance)

@freq_interval [ = ] @freq_interval

De dagen dat een taak wordt uitgevoerd. @freq_interval is int, met een standaardwaarde van 1en is afhankelijk van de waarde van @freq_type.

Waarde van @freq_type Effect op @freq_interval
1 (eenmaal) @freq_interval wordt niet gebruikt.
4 (dagelijks) Elke @freq_interval dagen.
8 (wekelijks) @freq_interval een of meer van de volgende is (gecombineerd met een OR logische 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 (maandelijks relatief) @freq_interval is een van de volgende opties:

1 = zondag
2 = maandag
3 = dinsdag
4 = woensdag
5 = donderdag
6 = vrijdag
7 = zaterdag
8 = Dag
9 = Weekdag
10 = Weekenddag
64 (wanneer de SQLServerAgent-service wordt gestart) @freq_interval wordt niet gebruikt.
128 @freq_interval wordt niet gebruikt.

@freq_subday_type [ = ] freq_subday_type

Hiermee geeft u de eenheden voor @freq_subday_interval. @freq_subday_type is int, met een standaardwaarde van 0en kan een van deze waarden zijn.

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

@freq_subday_interval [ = ] freq_subday_interval

Het aantal @freq_subday_type perioden tussen elke uitvoering van een taak. @freq_subday_interval is int, met een standaardwaarde van 0. Het interval moet ten minste 10 seconden lang zijn. @freq_subday_interval wordt genegeerd in gevallen waarin @freq_subday_type gelijk is aan 1.

@freq_relative_interval [ = ] freq_relative_interval

Het optreden van een taak in elke maand @freq_interval , als @freq_interval 32 (maandelijks relatief) is. @freq_relative_interval is int, met een standaardwaarde en 0kan een van deze waarden zijn. @freq_relative_interval wordt genegeerd in gevallen waarin @freq_type niet gelijk is aan 32.

Waarde Beschrijving (eenheid)
1 Eerst
2 Tweede
4 Derde
8 Vierde
16 Laatste

@freq_recurrence_factor [ = ] freq_recurrence_factor

Het aantal weken of maanden tussen de geplande uitvoering van een taak. @freq_recurrence_factor wordt alleen gebruikt als @freq_type , 816of 32. @freq_recurrence_factor is int, met een standaardwaarde van 0.

@active_start_date [ = ] active_start_date

De datum waarop de uitvoering van een taak kan beginnen. @active_start_date is int, met een standaardwaarde van NULL, wat de datum van vandaag aangeeft. De datum is opgemaakt als yyyyMMdd. Als @active_start_date niet NULLis, moet de datum groter dan of gelijk zijn aan 19900101.

Nadat de planning is gemaakt, controleert u de begindatum en controleert u of deze de juiste datum is. Zie de sectie 'Begindatum van planning' in Planningsschema's maken en koppelen aan taken voor meer informatie.

Voor wekelijkse of maandelijkse planningen wordt de agent genegeerd als @active_start_date in het verleden is en in plaats daarvan de huidige datum gebruikt. Wanneer een SQL Server Agent-planning wordt gemaakt met behulp van sp_add_schedule een optie om de parameter op te geven @active_start_date de datum waarop de taak wordt uitgevoerd. Als het schematype wekelijks of maandelijks is en de parameter @active_start_date is ingesteld op een datum in het verleden, wordt de parameter @active_start_date genegeerd en wordt de huidige datum gebruikt voor @active_start_date.

@active_end_date [ = ] active_end_date

De datum waarop de uitvoering van een taak kan stoppen. @active_end_date is int, met een standaardwaarde van 99991231, wat 31 december 9999 aangeeft. Opgemaakt als yyyyMMdd.

@active_start_time [ = ] active_start_time

Het tijdstip op een willekeurige dag tussen @active_start_date en @active_end_date om te beginnen met het uitvoeren van een taak. @active_start_time is int, met een standaardwaarde van 000000, die 12:00:00 uur op een 24-uurs klok aangeeft en moet worden ingevoerd met het formulier HHmmss.

@active_end_time [ = ] active_end_time

Het tijdstip op een willekeurige dag tussen @active_start_date en @active_end_date om de uitvoering van een taak te beëindigen. @active_end_time is int, met een standaardwaarde , 235959die 11:59:59 uur op een 24-uurs klok aangeeft en moet worden ingevoerd met het formulier HHmmss.

@owner_login_name [ = ] 'owner_login_name'

De naam van de server-principal die eigenaar is van het schema. @owner_login_namesysname is, met een standaardwaarde NULLvan , wat aangeeft dat de planning eigendom is van de maker.

[ @schedule_uid = ] schedule_uid UITVOER

Een unieke id voor de planning. @schedule_uid is een variabele van het type uniqueidentifier.

[ @schedule_id = ] schedule_id UITVOER

Een id voor de planning. @schedule_id is een variabele van het type int.

@originating_server [ = ] server_name

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

Codewaarden retourneren

0 (geslaagd) of 1 (mislukt).

Resultaatset

Geen.

Opmerkingen

SQL Server Management Studio biedt een eenvoudige, grafische manier om taken te beheren en is de aanbevolen manier om de taakinfrastructuur te maken en te beheren.

Machtigingen

U kunt EXECUTE machtigingen verlenen voor deze procedure, maar deze machtigingen worden mogelijk 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

Zie sql Server Agent vaste databaserollenvoor meer informatie over de machtigingen van deze rollen.

Voorbeelden

Eén. Een planning maken

In het volgende voorbeeld wordt een schema met de naam RunOncegemaakt. De planning wordt één keer uitgevoerd op 23:30 de dag dat de planning is gemaakt.

USE msdb;
GO

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

B. Een planning maken, de planning koppelen aan meerdere taken

In het volgende voorbeeld wordt een schema met de naam NightlyJobsgemaakt. Taken die gebruikmaken van dit schema worden elke dag uitgevoerd wanneer de tijd op de server is 01:00. In het voorbeeld wordt de planning gekoppeld aan de taak BackupDatabase en de taak RunReports.

Opmerking

In dit voorbeeld wordt ervan uitgegaan dat de taak BackupDatabase en de taak RunReports al bestaan.

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