sp_attach_schedule (Transact-SQL)
Legt einen Zeitplan für einen Auftrag fest.
Syntax
sp_attach_schedule
{ [ @job_id = ] job_id | [ @job_name = ] 'job_name' } ,
{ [ @schedule_id = ] schedule_id
| [ @schedule_name = ] 'schedule_name' }
Argumente
[ @job_id= ] job_id
Die ID des Auftrags, für den der Zeitplan hinzugefügt wird. job_id ist ein Wert vom Datentyp uniqueidentifier. Der Standardwert ist NULL.[ @job_name =] 'job_name'
Der Name des Auftrags, für den der Zeitplan hinzugefügt wird. job_name hat den Datentyp sysname und den Standardwert NULL.Hinweis Es muss entweder job_id oder job_name angegeben werden, beide Angaben sind jedoch nicht möglich.
[ @schedule_id = ] schedule_id
Die ID des Zeitplans, der für den Auftrag festgelegt wird. schedule_id ist ein Wert vom Datentyp int. Der Standardwert ist NULL.[ @schedule_name = ] 'schedule_name'
Der Name des Zeitplans, der für den Auftrag festgelegt wird. schedule_name ist ein Wert vom Datentyp sysname. Der Standardwert ist NULL.Hinweis Es muss entweder schedule_id oder schedule_name angegeben werden, beide Angaben sind jedoch nicht möglich.
Hinweise
Der Zeitplan und der Auftrag müssen denselben Besitzer aufweisen.
Ein Zeitplan kann für mehrere Aufträge festgelegt werden. Ein Auftrag kann auf der Basis mehrerer Zeitpläne ausgeführt werden.
Diese gespeicherte Prozedur muss von der msdb-Datenbank aus ausgeführt werden.
Berechtigungen
Standardmäßig können nur Mitglieder der festen Serverrolle sysadmin diese gespeicherte Prozedur ausführen. Andere Benutzer müssen Mitglieder der festen SQL Server-Agent-Datenbankrollen in der msdb-Datenbank sein:
SQLAgentUserRole
SQLAgentReaderRole
SQLAgentOperatorRole
Weitere Informationen zu den Berechtigungen dieser Rollen finden Sie unter Feste Datenbankrollen des SQL Server-Agents.
SQL Server prüft, ob der Benutzer Besitzer sowohl des Auftrags als auch des Zeitplans ist.
Beispiele
Im folgenden Beispiel wird ein Zeitplan mit dem Namen NightlyJobs erstellt. Aufträge, die diesen Zeitplan verwenden, werden jeden Tag zur Serveruhrzeit 01:00 Uhr ausgeführt. Im Beispiel wird der Zeitplan den Aufträgen BackupDatabase und RunReports angefügt.
Hinweis |
---|
In diesem Beispiel wird davon ausgegangen, dass der Auftrag BackupDatabase und der Auftrag RunReports bereits vorhanden sind. |
USE msdb ;
GO
EXEC sp_add_schedule
@schedule_name = N'NightlyJobs' ,
@freq_type = 4,
@freq_interval = 1,
@active_start_time = 010000 ;
GO
EXEC sp_attach_schedule
@job_name = N'BackupDatabase',
@schedule_name = N'NightlyJobs' ;
GO
EXEC sp_attach_schedule
@job_name = N'RunReports',
@schedule_name = N'NightlyJobs' ;
GO