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 NULL ist, ist 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 0der 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 = 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 eine 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 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 Letzte

@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 32ist , 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, 16oder 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 (Erfolg) 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