sp_add_jobschedule (Transact-SQL)
Gilt für: SQL Server Azure SQL Managed Instance
Erstellt einen Zeitplan für einen SQL Server-Agent Auftrag.
Transact-SQL-Syntaxkonventionen
Wichtig
In Azure SQL Managed Instance werden derzeit die meisten, aber nicht alle, SQL Server-Agent-Features unterstützt. Details dazu finden Sie unter T-SQL-Unterschiede zwischen Azure SQL Managed Instance und SQL Server.
Syntax
sp_add_jobschedule
[ [ @job_id = ] 'job_id' ]
[ , [ @job_name = ] N'job_name' ]
, [ @name = ] N'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 ]
[ , [ @schedule_id = ] schedule_id OUTPUT ]
[ , [ @automatic_post = ] automatic_post ]
[ , [ @schedule_uid = ] 'schedule_uid' OUTPUT ]
[ ; ]
Argumente
[ @job_id = ] 'job_id'
Die ID des Auftrags, dem der Zeitplan hinzugefügt wird. @job_id ist eindeutiger Bezeichner mit einem Standardwert von NULL
.
Entweder @job_id oder @job_name müssen angegeben werden, beide können jedoch nicht angegeben werden.
[ @job_name = ] N'job_name'
Der Name des Auftrags, dem der Zeitplan hinzugefügt wird. @job_name ist "sysname" mit der Standardeinstellung "NULL
.
Entweder @job_id oder @job_name müssen angegeben werden, beide können jedoch nicht angegeben werden.
[ @name = ] N'name'
Name des Zeitplans. @name ist "sysname" ohne Standard.
[ @enabled = ] aktiviert
Gibt den aktuellen Status des Zeitplans an. @enabled ist winzig, mit einem Standardwert von 1
(aktiviert). Wenn 0
der Zeitplan nicht aktiviert ist. Wenn der Zeitplan deaktiviert ist, wird der Auftrag nicht ausgeführt.
[ @freq_type = ] freq_type
Ein Wert, der angibt, wann der Auftrag ausgeführt werden soll. @freq_type ist int und kann einer der folgenden Werte sein:
Wert | Beschreibung |
---|---|
1 |
Einmal |
4 |
Täglich |
8 |
Wöchentlich |
16 |
Monatlich |
32 |
Monatlich relativ zu @freq_interval. |
64 |
Wird ausgeführt, wenn der SQL Server-Agent Dienst gestartet wird. |
128 |
Ausführen, wenn sich der Computer im Leerlauf befindet. |
[ @freq_interval = ] freq_interval
Der Tag, an dem der Auftrag ausgeführt wird. @freq_interval ist "int" mit einem Standardwert von 0
" und hängt vom Wert @freq_type ab, wie in der folgenden Tabelle angegeben:
Wert von @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 Elemente (kombiniert mit einem OR logischen Operator):1 = Sonntag2 = Montag4 = Dienstag8 = Mittwoch16 = Donnerstag32 = Freitag64 = Samstag |
16 (monatlich) |
Am @freq_interval Tag des Monats. |
32 (monatlich relativ) |
@freq_interval ist eine der folgenden:1 = Sonntag2 = Montag3 = Dienstag4 = Mittwoch5 = Donnerstag6 = Freitag7 = Samstag8 = Tag9 = Wochentag10 = Wochenendtag |
64 (wenn der SQL Server-Agent 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 @freq_subday_interval an. @freq_subday_type ist int und kann eine der folgenden Werte sein:
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, die zwischen jeder Ausführung des Auftrags auftreten sollen. @freq_subday_interval ist int mit einem Standardwert von 0
.
[ @freq_relative_interval = ] freq_relative_interval
Definiert die @freq_interval weiter, wenn @freq_type auf (monatlich relativ) festgelegt 32
ist.
@freq_relative_interval ist int und kann einer der folgenden Werte sein:
Wert | Beschreibung (Einheit) |
---|---|
1 |
First |
2 |
Second |
4 |
Third |
8 |
Viertes |
16 |
Last |
@freq_relative_interval gibt das Auftreten des Intervalls an. Wenn z. B. @freq_relative_interval auf 2
, @freq_type festgelegt ist und @freq_interval auf 3
" festgelegt 32
ist , würde der geplante Auftrag am zweiten Dienstag jedes Monats auftreten.
[ @freq_recurrence_factor = ] freq_recurrence_factor
Die Anzahl der Wochen oder Monate zwischen den geplanten Ausführungen des Auftrags. @freq_recurrence_factor ist int mit einem Standardwert von 0
. @freq_recurrence_factor wird nur verwendet, wenn @freq_type auf 8
, 16
oder 32
.
[ @active_start_date = ] active_start_date
Das Datum, an dem die Auftragsausführung beginnen kann. @active_start_date ist int, mit einem Standardwert von NULL
. Das Datum ist als yyyyMMdd
. Wenn @active_start_date festgelegt ist, muss das Datum größer oder gleich sein 19900101
.
Überprüfen Sie nach dem Erstellen des Zeitplans das Startdatum, und bestätigen Sie, dass es sich um das richtige Datum handelt. Weitere Informationen finden Sie im Abschnitt "Planung des Anfangstermins" in "Erstellen und Anfügen von Zeitplänen an Aufträge".
[ @active_end_date = ] active_end_date
Das Datum, an dem die Ausführung des Auftrags beendet werden kann. @active_end_date ist int, mit einem Standardwert von 99991231
. Das Datum ist als yyyyMMdd
.
[ @active_start_time = ] active_start_time
Die Uhrzeit an einem beliebigen Tag zwischen @active_start_date und @active_end_date , um mit der Ausführung des Auftrags zu beginnen. @active_start_time ist int, mit einem Standardwert von 000000
. Die Uhrzeit wird wie HHmmss
auf einer 24-Stunden-Uhr formatiert.
[ @active_end_time = ] active_end_time
Die Uhrzeit an einem beliebigen Tag zwischen active_start_date und @active_end_date bis zum Beenden der Auftragsausführung. @active_end_time ist int mit einem Standardwert von 235959
. Die Uhrzeit wird wie HHmmss
auf einer 24-Stunden-Uhr formatiert.
[ @schedule_id = ] schedule_id OUTPUT
Die dem Zeitplan zugewiesene Planidentifikationsnummer, wenn sie erfolgreich erstellt wurde. @schedule_id ist ein OUTPUT-Parameter vom Typ int.
[ @automatic_post = ] automatic_post
Nur für Informationszwecke identifiziert. Wird nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.
[ @schedule_uid = ] 'schedule_uid' OUTPUT
Ein eindeutiger Bezeichner für den Zeitplan. @schedule_uid ist ein OUTPUT-Parameter vom Typ uniqueidentifier.
Rückgabecodewerte
0
(erfolgreich) oder 1
Fehler.
Resultset
Keine.
Hinweise
Auftragszeitpläne können jetzt unabhängig von Aufträgen verwaltet werden. Verwenden Sie sp_add_schedule
zum Hinzufügen eines Zeitplans zu einem Auftrag den Zeitplan und sp_attach_schedule
zum Anfügen des Zeitplans an einen Auftrag.
Berechtigungen
Diese gespeicherte Prozedur gehört der db_owner Rolle. Sie können berechtigungen für jeden Benutzer erteilen EXECUTE
, diese Berechtigungen können jedoch während eines SQL Server-Upgrades außer Kraft gesetzt werden.
Anderen Benutzern muss eine der folgenden SQL Server-Agent festen Datenbankrollen in der msdb
Datenbank gewährt werden:
- SQLAgentUserRole
- SQLAgentReaderRole
- SQLAgentOperatorRole
Weitere Informationen zu den Berechtigungen dieser Rollen finden Sie unter Feste Datenbankrollen des SQL Server-Agents.
Beispiele
Im folgenden Beispiel wird ein Auftragsplan zugewiesen SaturdayReports
, der jeden Samstag um 2:00 Uhr ausgeführt wird.
EXEC msdb.dbo.sp_add_jobschedule
@job_name = N'SaturdayReports', -- Job name
@name = N'Weekly_Sat_2AM', -- Schedule name
@freq_type = 8, -- Weekly
@freq_interval = 64, -- Saturday
@freq_recurrence_factor = 1, -- every week
@active_start_time = 20000 -- 2:00 AM
Zugehöriger Inhalt
- Anlegen und Zuweisen von Zeitplänen zu Aufträgen
- Planen eines Auftrags
- Create a Schedule
- SQL Server-Agent gespeicherten Prozeduren (Transact-SQL)
- sp_add_schedule (Transact-SQL)
- sp_update_schedule (Transact-SQL)
- sp_delete_schedule (Transact-SQL)
- sp_help_schedule (Transact-SQL)
- sp_attach_schedule (Transact-SQL)