sp_add_schedule (Transact-SQL)

Anwendungsbereich: JaSQL Server (alle unterstützten Versionen) JaVerwaltete Azure SQL-Instanz

Legt einen Zeitplan an, der von einer beliebigen Anzahl von Aufträgen verwendet werden kann.

Symbol für Themenlink 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_name ist vom Datentyp vom Datentyp sysname und hat keinen Standardwert.

[ @enabled = ] enabled Gibt den aktuellen Status des Zeitplans an. aktiviert ist vom Datentyp tinyint. der Standardwert ist 1 (aktiviert). Wenn der Wert 0 ist, ist der Zeitplan nicht aktiviert. 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_type ist vom Datentyp int und hat den Standardwert 0. die folgenden Werte sind möglich:

Wert BESCHREIBUNG
1 Einmalig
4 Täglich
8 Wöchentlich
16 Monatlich
32 Monatlich, relativ zu freq_interval
64 Beim Starten des SQL Agent-Dienstanbieter ausführen
128 Ausführen, wenn sich der Computer im Leerlauf befindet (wird in Azure SQL-verwaltete Instanznicht unterstützt)

[ @freq_interval = ] freq_interval Die Tage, an denen ein Auftrag ausgeführt wird. freq_interval ist vom Datentyp int und hat den Standardwert 1 und hängt vom Wert freq_type ab.

Wert freq_type Auswirkung auf freq_interval
1 (einmal) freq_interval wird nicht verwendet.
4 (täglich) Alle freq_interval Tage.
8 (wöchentlich) freq_interval ist eine oder mehrere der folgenden (kombiniert mit einem logischen OR-Operator):

1 = Sonntag

2 = Montag

4 = Dienstag

8 = Mittwoch

16 = Donnerstag

32 = Freitag

64 = Samstag
16 (monatlich) Am freq_interval Tag des Monats.
32 (monatlich, relativ) freq_interval ist einer der folgenden:

1 = Sonntag

2 = Montag

3 = Dienstag

4 = Mittwoch

5 = Donnerstag

6 = Freitag

7 = Samstag

8 = Tag

9 = Wochentag

10 = Wochenendtag
64 (wenn der SQLServerAgent-Dienst gestartet wird) freq_interval wird nicht verwendet.
128 freq_interval wird nicht verwendet.

[ @freq_subday_type = ] freq_subday_type Gibt die Einheiten für die freq_subday_interval an. freq_subday_type ist vom Datentyp int und hat den Standardwert 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 Zeiträume zwischen jeder Ausführung eines Auftrags. freq_subday_interval ist vom Datentyp int und hat den Standardwert 0. Hinweis: Das Intervall sollte nicht länger als 10 Sekunden sein. freq_subday_interval wird in den Fällen ignoriert, in denen freq_subday_type gleich 1 ist.

[ @freq_relative_interval = ] freq_relative_interval Das Vorkommen eines Auftrags freq_interval in jedem Monat, wenn freq_interval 32 (monatlich, relativ) ist. freq_relative_interval ist vom Datentyp int und hat den Standardwert 0. die folgenden Werte sind möglich: freq_relative_interval wird in den Fällen ignoriert, in denen freq_type nicht gleich 32 ist.

Wert Beschreibung (Einheit)
1 First
2 Sekunde
4 Third
8 Vierter
16 Letzter

[ @freq_recurrence_factor = ] freq_recurrence_factor Die Anzahl der Wochen oder Monate zwischen der geplanten Ausführung eines Auftrags. freq_recurrence_factor wird nur verwendet, wenn freq_type 8, 16 oder 32 ist. freq_recurrence_factor ist vom Datentyp int und hat den Standardwert 0.

[ @active_start_date = ] active_start_date Das Datum, an dem die Ausführung eines Auftrags beginnen kann. active_start_date ist vom Datentyp int und hat den Standardwert NULL, der das heutige Datum angibt. Das Datum wird als YYYYMMDD formatiert. 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 des Start Datums" unter Erstellen und Anfügen von Zeitplänen an Aufträge.

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_date ist vom Datentyp int und hat den Standardwert 99991231, womit der 31. Dezember 9999 angegeben wird. Im Format JJJJMMTT.

[ @active_start_time = ] active_start_time Die Uhrzeit an einem beliebigen Tag zwischen active_start_date und active_end_date , um die Ausführung eines Auftrags zu beginnen. active_start_time ist vom Datentyp int und hat den Standardwert 000000, der 12: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 , um die Ausführung eines Auftrags zu beenden. active_end_time ist vom Datentyp int und hat den Standardwert 235959, der 11:59:59 Uhr angibt. im 24-Stunden-Format an und muss im Format HHMMSS eingegeben werden.

[ @owner_login_name = ] 'owner_login_name' Der Name des Server Prinzipals, der den Zeitplan besitzt. owner_login_name ist vom Datentyp vom Datentyp sysname und hat den Standardwert NULL, womit angegeben wird, dass der Zeitplan dem Ersteller gehört.

[ @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. Wird nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.

Rückgabecodewerte

0 (Erfolg) oder 1 (Fehler)

Resultsets

Keine

Bemerkungen

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. 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.

Beispiele

A. Erstellen eines Zeitplans

Im folgenden Beispiel wird ein Zeitplan mit dem Namen RunOnce erstellt. 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  

Weitere Informationen

Erstellen und Anfügen von Zeitplänen an Aufträge
Planen eines Auftrags
Erstellen eines Zeitplans
SQL Server-Agent gespeicherter Prozeduren (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)