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, dem der Zeitplan hinzugefügt wird. job_idist vom Datentyp uniqueidentifier und hat den Standardwert NULL.

  • [ @job_name = ] 'job_name'
    Der Name des Auftrags, dem der Zeitplan hinzugefügt wird. job_nameist vom Datentyp sysname und hat 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 Zeitplan-ID des für den Auftrag festgelegten Zeitplans. schedule_idist vom Datentyp int und hat den Standardwert NULL.

  • [ @schedule_name = ] 'schedule_name'
    Der Name des für den Auftrag festzulegenden Zeitplans. schedule_nameist vom Datentyp sysname und hat den Standardwert 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. Anderen Benutzern muss eine der folgenden festen Datenbankrollen des SQL Server-Agents in der msdb-Datenbank zugewiesen werden:

  • SQLAgentUserRole

  • SQLAgentReaderRole

  • SQLAgentOperatorRole

Hinweis: Der Auftragsbesitzer kann einem Zeitplan einen Auftrag anfügen oder diesen von ihm trennen, und zwar ohne der Zeitplanbesitzer sein zu müssen. Ein Zeitplan kann jedoch nicht gelöscht werden, wenn durch das Trennen keine Aufträge mehr vorhanden wären, außer der Aufrufer ist der Zeitplanbesitzer.

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

Bei diesem Beispiel wird davon ausgegangen, dass die Aufträge BackupDatabase und 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

Siehe auch

Verweis

sp_add_schedule (Transact-SQL)

sp_detach_schedule (Transact-SQL)

sp_delete_schedule (Transact-SQL)