Delen via


sp_attach_schedule (Transact-SQL)

Van toepassing op:SQL Server

Stelt een schema vast voor een baan.

Transact-SQL syntaxis-conventies

Syntaxis

sp_attach_schedule
    [ [ @job_id = ] 'job_id' ]
    [ , [ @job_name = ] N'job_name' ]
    [ , [ @schedule_id = ] schedule_id ]
    [ , [ @schedule_name = ] N'schedule_name' ]
    [ , [ @automatic_post = ] automatic_post ]
[ ; ]

Arguments

[ @job_id = ] 'job_id'

Het functieidentificatienummer van de functie waaraan het rooster wordt 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.

[ @schedule_id = ] schedule_id

Het schemaidentificatienummer van het schema dat voor de klus moet worden ingesteld. @schedule_id is int, met als standaard .NULL

Zowel @schedule_id als @schedule_name moeten worden gespecificeerd, maar beide kunnen niet worden gespecificeerd.

[ @schedule_name = ] N'schedule_name'

De naam van het rooster dat voor de klus moet worden ingesteld. @schedule_name is een systeemnaam, met als standaard NULL.

Zowel @schedule_id als @schedule_name moeten worden gespecificeerd, maar beide kunnen niet worden gespecificeerd.

[ @automatic_post = ] automatic_post

@automatic_post is bit, met als standaard .1

Opmerkingen

Het rooster en de klus moeten dezelfde eigenaar hebben.

Er kan een schema worden ingesteld voor meer dan één baan. Een klus kan volgens meer dan één schema worden uitgevoerd.

Deze opgeslagen procedure moet vanuit de msdb database worden uitgevoerd.

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

De opdrachtgever kan een opdracht aan een schema koppelen en een klus loskoppelen van een schema zonder ook de opdrachtgever te hoeven zijn. Een schema kan echter niet worden verwijderd als de detacher het zonder taken achterlaat, tenzij de beller de eigenaar van het schema is.

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

SQL Server controleert of de gebruiker zowel de taak als het schema bezit.

Voorbeelden

Het volgende voorbeeld maakt een schema genaamd NightlyJobs. Taken die dit schema gebruiken, worden elke dag uitgevoerd wanneer de tijd op de server is 01:00. Het voorbeeld koppelt het rooster aan de klus BackupDatabase en de klus.RunReports

Opmerking

Dit voorbeeld gaat ervan uit dat de baan BackupDatabase en de baan 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