sp_add_schedule (Transact-SQL)
Legt einen Zeitplan an, der von einer beliebigen Anzahl von Aufträgen verwendet werden kann.
Transact-SQL-Syntaxkonventionen
Syntax
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 */
Argumente
[ @schedule_name = ] 'schedule_name'
Der Name des Zeitplans. schedule_nameist vom Datentyp sysname und hat keinen Standardwert.[ @enabled = ] enabled
Gibt den aktuellen Status des Zeitplans an. enabledist vom Datentyp tinyint. Der Standardwert ist 1 (aktiviert). Mit 0 wird der Zeitplan deaktiviert. Wenn der Zeitplan nicht aktiviert ist, werden über diesen Zeitplan keine Aufträge ausgeführt.[ @freq_type = ] freq_type
Ein Wert, der angibt, wann ein Auftrag ausgeführt werden soll. freq_typeist vom Datentyp int, und der Standardwert ist 0. Die folgenden Werte sind möglich:Wert
Beschreibung
1
Einmal
4
Täglich
8
Wöchentlich
16
Monatlich
32
Monatlich, relativ zum Wert von freq_interval
64
Ausführen beim Start des SQLServerAgent-Diensts
128
Ausführen, wenn sich der Computer im Leerlauf befindet
[ @freq_interval = ] freq_interval
Die Tage, an denen ein Auftrag ausgeführt wird. freq_interval ist vom Datentyp int. Der Standardwert ist 1, und der Wert hängt vom Wert von freq_type ab.Wert von freq_type
Auswirkungen auf freq_interval
1 (einmal)
freq_interval wird nicht verwendet.
4 (täglich)
Alle freq_interval Tage.
8 (wöchentlich)
Für freq_interval sind einer oder mehrere der folgenden Werte möglich (mit dem logischen OR-Operator verknüpft):
1 = Sonntag
2 = Montag
4 = Dienstag
8 = Mittwoch
16 = Donnerstag
32 = Freitag
64 = Samstag
16 (monatlich)
Am freq_interval-Tag des Monats.
32 (mit relativem Monatsintervall)
freq_interval ist einer der folgenden Werte:
1 = Sonntag
2 = Montag
3 = Dienstag
4 = Mittwoch
5 = Donnerstag
6 = Freitag
7 = Samstag
8 = Tag
9 = Arbeitstag
10 = Wochenendtag
64 (beim Start des SQLServerAgent-Diensts)
freq_interval wird nicht verwendet.
128
freq_interval wird nicht verwendet.
[ @freq_subday_type = ] freq_subday_type
Gibt die Einheiten für freq_subday_interval an. freq_subday_typeist vom Datentyp int, und der Standardwert ist 0. Die folgenden Werte sind möglich:Wert
Beschreibung (Einheit)
0x1
Zum angegebenen Zeitpunkt
0x2
Sekunden
0x4
Minuten
0x8
Stunden
[ @freq_subday_interval = ] freq_subday_interval
Die Anzahl der freq_subday_type-Perioden zwischen den Ausführungsinstanzen des Auftrags. freq_subday_intervalist vom Datentyp int. Der Standardwert ist 0. Hinweis: Das Intervall sollte nicht länger als 10 Sekunden sein. freq_subday_interval wird ignoriert, wenn freq_subday_type gleich 1 ist.[ @freq_relative_interval = ] freq_relative_interval
Das monatliche Vorkommen des geplanten Auftrags gemäß freq_interval, wenn für freq_interval der Wert 32 (monatlich, relativ) festgelegt ist. freq_relative_intervalist vom Datentyp int, und der Standardwert ist 0. Die folgenden Werte sind möglich: freq_relative_interval wird ignoriert, wenn freq_type ungleich 32 ist.Wert
Beschreibung (Einheit)
1
Erster
2
Zweiter
4
Dritter
8
Vierter
16
Letzter
[ @freq_recurrence_factor = ] freq_recurrence_factor
Die Anzahl der Wochen oder Monate zwischen den geplanten Ausführungen des Auftrags. freq_recurrence_factor wird nur verwendet, wenn freq_type den Wert 8, 16 oder 32 aufweist. freq_recurrence_factorist vom Datentyp int. Der Standardwert ist 0.[ @active_start_date = ] active_start_date
Das Datum, an dem die Ausführung eines Auftrags beginnen kann. active_start_dateist vom Datentyp int. Der Standardwert NULL gibt das aktuelle Datum an. Für das Datum wird das Format YYYYMMDD verwendet. Wenn active_start_date nicht NULL ist, muss das Datum größer oder gleich 19900101 sein.Überprüfen Sie nach dem Erstellen des Zeitplans, ob das Startdatum korrekt ist. Weitere Informationen finden Sie im Abschnitt "Planen von Startdaten" in Anlegen und Zuweisen von Zeitplänen zu Aufträgen.
Bei wöchentlichen oder monatlichen Zeitplänen wird vom Agent nicht berücksichtigt, ob active_start_date in der Vergangenheit liegt, und das aktuelle Datum verwendet. Beim Erstellen eines SQL-Agentzeitplans mithilfe von sp_add_schedule kann der active_start_date-Parameter angegeben werden, der das Startdatum der Auftragsausführung darstellt. Wenn der Zeitplantyp "Wöchentlich" oder "Monatlich" lautet und der active_start_date-Parameter auf ein Datum in der Vergangenheit festgelegt ist, werden der active_start_date-Parameter ignoriert und das aktuelle Datum für active_start_date verwendet.
[ @active_end_date = ] active_end_date
Das Datum, an dem die Ausführung eines Auftrags beendet werden kann. active_end_dateist vom Datentyp int. Der Standardwert 99991231 gibt den 31. Dezember 9999 an. Im Format JJJJMMTT.[ @active_start_time = ] active_start_time
Die Uhrzeit an einem beliebigen Tag zwischen active_start_date und active_end_date, zu der die Ausführung eines Auftrags gestartet werden soll. active_start_timeist vom Datentyp int und hat den Standardwert 000000. Dieser gibt 00:00:00 Uhr im 24-Stunden-Format an und muss im Format HHMMSS eingegeben werden.[ @active_end_time = ] active_end_time
Die Uhrzeit an einem beliebigen Tag zwischen active_start_date und active_end_date, zu der die Ausführung eines Auftrags beendet werden soll. active_end_timeist vom Datentyp int und hat den Standardwert 235959. Dieser gibt 23:59:59 Uhr im 24-Stunden-Format an und muss im Format HHMMSS eingegeben werden.[ @owner_login_name= ] 'owner_login_name'
Der Name des Serverprinzipals, der Besitzer des Zeitplans ist. owner_login_name ist vom Datentyp sysname, und der Standardwert ist NULL. Dieser gibt an, dass der Besitzer des Zeitplans der Ersteller ist.[ @schedule_uid= ] schedule_uidOUTPUT
Ein eindeutiger Bezeichner für den Zeitplan. schedule_uid ist eine Variable vom Typ uniqueidentifier.[ @schedule_id= ] schedule_idOUTPUT
Ein Bezeichner für den Zeitplan. schedule_id ist eine Variable vom Typ int.[ @originating_server= ] server_name
Nur für Informationszwecke identifiziert. Nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.
Rückgabecodewerte
0 (Erfolg) oder 1 (Fehler)
Resultsets
Keine
Hinweise
Mit SQL Server Management Studio können Aufträge problemlos mithilfe einer grafischen Oberfläche verwaltet werden. Dies ist die empfohlene Vorgehensweise für die Erstellung und Verwaltung der Auftragsinfrastruktur.
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
Weitere Informationen zu den Berechtigungen dieser Rollen finden Sie unter Feste Datenbankrollen des SQL Server-Agents.
Beispiele
A.Erstellen eines Zeitplans
Im folgenden Beispiel wird ein Zeitplan mit dem Namen RunOnce angelegt. Der Zeitplan wird einmal um 23:30 Uhr an dem Tag ausgeführt, an dem der Zeitplan erstellt wird.
USE msdb ;
GO
EXEC dbo.sp_add_schedule
@schedule_name = N'RunOnce',
@freq_type = 1,
@active_start_time = 233000 ;
GO
B.Erstellen eines Zeitplans und Zuweisen des Zeitplans zu mehreren Aufträgen
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 |
---|
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
Gespeicherte Prozeduren des SQL Server-Agents (Transact-SQL)
sp_add_jobschedule (Transact-SQL)
sp_update_schedule (Transact-SQL)
sp_delete_schedule (Transact-SQL)
sp_help_schedule (Transact-SQL)
sp_attach_schedule (Transact-SQL)