sp_update_schedule (Transact-SQL)
Gilt für: SQL Server
Ändert die Einstellungen für einen SQL Server-Agent Zeitplan.
Transact-SQL-Syntaxkonventionen
Syntax
sp_update_schedule
[ [ @schedule_id = ] schedule_id ]
[ , [ @name = ] N'name' ]
[ , [ @new_name = ] N'new_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 = ] N'owner_login_name' ]
[ , [ @automatic_post = ] automatic_post ]
[ ; ]
Argumente
[ @schedule_id = ] schedule_id
Der Bezeichner des Zeitplans, der geändert werden soll. @schedule_id ist int mit einem Standardwert von NULL
.
Entweder @schedule_id oder @name müssen angegeben werden.
[ @name = ] N'name'
Der Name des zu ändernden Zeitplan. @name ist "sysname" mit einem Standardwert von NULL
.
Entweder @schedule_id oder @name müssen angegeben werden.
[ @new_name = ] N'new_name'
Der neue Name des Zeitplans. @new_name ist "sysname" mit der Standardeinstellung "NULL
. Wenn @new_name ist, ist NULL
der Name des Zeitplans unverändert.
[ @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 nicht aktiviert ist, werden für 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 int und kann einer dieser Werte sein.
Wert | Beschreibung |
---|---|
1 |
Einmal |
4 |
Täglich |
8 |
Wöchentlich |
16 |
Monatlich |
32 |
Monatlich, relativ zu @freq_interval |
64 |
Ausführen, wenn SQL Server-Agent Dienst gestartet wird |
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 "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 einer dieser 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 Perioden, die zwischen jeder Ausführung eines 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 dieser 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 der geplanten Ausführung eines 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.
[ @owner_login_name = ] N'owner_login_name'
Der Name des Serverprinzipals, der Besitzer des Zeitplans ist. @owner_login_name ist sysname, mit einem Standardwert von NULL
, der angibt, dass der Zeitplan dem Ersteller gehört.
[ @automatic_post = ] automatic_post
Nur für Informationszwecke identifiziert. Wird nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.
Rückgabecodewerte
0
(erfolgreich) oder 1
Fehler.
Hinweise
Alle Aufträge, die den Zeitplan verwenden, verwenden sofort die neuen Einstellungen. Durch das Ändern eines Zeitplans werden derzeit ausgeführte Aufträge jedoch nicht beendet.
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.
Nur Mitglieder von sysadmin können einen Zeitplan ändern, der einem anderen Benutzer gehört.
Beispiele
Im folgenden Beispiel wird der aktivierte Status des NightlyJobs
-Zeitplans zu 0
und der Besitzer zu terrid
geändert.
USE msdb;
GO
EXEC dbo.sp_update_schedule
@name = 'NightlyJobs',
@enabled = 0,
@owner_login_name = 'terrid';
GO
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_add_jobschedule (Transact-SQL)
- sp_delete_schedule (Transact-SQL)
- sp_help_schedule (Transact-SQL)
- sp_attach_schedule (Transact-SQL)