Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
Azure 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 = zondag2 = maandag4 = dinsdag8 = woensdag16 = donderdag32 = vrijdag64 = zaterdag |
16 (maandelijks) |
Op de @freq_interval dag van de maand. |
32 (maandelijks relatief) |
@freq_interval is een van de volgende opties:1 = zondag2 = maandag3 = dinsdag4 = woensdag5 = donderdag6 = vrijdag7 = zaterdag8 = Dag9 = Weekdag10 = 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