sp_attach_schedule (Transact-SQL)

Legt einen Zeitplan für einen Auftrag fest.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

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.

    HinweisHinweis

    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.

    HinweisHinweis

    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.

HinweisHinweis

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