Wenn Sie T-SQL verwenden, können Sie sp_add_schedule
verwenden gespeicherte Prozedur zum Hinzufügen eines Zeitplans für den SQL Server-Agent.
Dieses Verfahren erstellt den Zeitplan, fügt ihn aber keinen Jobs hinzu. Um es an einen Job anzuhängen, müssen Sie den sp_attach_schedule
verwenden Verfahren.
Sie können auch sp_add_jobschedule
verwenden um den Zeitplan zu erstellen und alles mit dem gleichen Verfahren anzuhängen.
Beispiel für sp_add_schedule
Verfahren
Hier ist ein Beispiel, das sp_add_schedule
verwendet So erstellen Sie einen neuen Zeitplan:
EXEC sp_add_schedule
@schedule_name = N'RunDailyAM',
@freq_type = 4,
@freq_interval = 4,
@active_start_time = 041000;
GO
Diese gespeicherte Prozedur akzeptiert mehr Argumente, als ich in dieses Beispiel aufgenommen habe, aber dies sind einige der gebräuchlicheren. In den Tabellen unten finden Sie eine Übersicht über die akzeptierten Werte.
@schedule_name
ist ein erforderliches Argument, aber die anderen sind optional und haben Standardeinstellungen, falls Sie sie nicht angeben.
Wir können jetzt sp_attach_schedule
verwenden So hängen Sie diesen Zeitplan an einen vorhandenen Job an:
EXEC sp_attach_schedule
@job_name = N'BackupPetHotelDB',
@schedule_name = N'RunDailyAM';
GO
Wenn Sie sp_attach_schedule
verwenden müssen Sie den Namen des Jobs oder seine ID (aber nicht beides) sowie den Plannamen oder die ID (aber nicht beides) angeben.
Beispiel für sp_add_jobschedule
Verfahren
Hier ist ein Beispiel, das sp_add_jobschedule
verwendet So erstellen Sie einen neuen Zeitplan und hängen ihn an einen Job an, alles auf einmal:
EXEC sp_add_jobschedule
@job_name = N'BackupMusicDB',
@name = N'Weekly_Sun_3AM',
@freq_type = 8,
@freq_interval = 1,
@freq_recurrence_factor = 1,
@active_start_time = 30000;
Bei diesem Verfahren wird der @job_name
Das Argument stellt den Jobnamen und den @name
bereit Das Argument gibt den Namen an, den Sie dem Zeitplan geben möchten.
Parameterwerte
Die Art und Weise, wie Zeitplandaten in der msdb gespeichert werden Datenbank macht es ein bisschen schwierig, wenn es darum geht, Jobs mit T-SQL zu planen.
Datums-/Uhrzeitwerte werden als int gespeichert Typen. Der Häufigkeitstyp wird als int ausgedrückt , ebenso wie die Intervallwerte und verschiedene andere Optionen.
Nachfolgend finden Sie eine Übersicht der akzeptierten Werte für die in den obigen Beispielen angegebenen Parameter.
@freq_type
Dieses Argument gibt an, wann ein Job ausgeführt werden soll. Es akzeptiert die folgenden Werte:
Wert | Beschreibung |
---|---|
1 | Einmal |
4 | Täglich |
8 | Wöchentlich |
16 | Monatlich |
32 | Monatlich, relativ zu freq_interval |
64 | Ausführen, wenn der SQL Agent-Dienst gestartet wird |
128 | Ausführen, wenn der Computer im Leerlauf ist |
@freq_interval
Dieses Argument gibt die Tage an, an denen ein Job ausgeführt wird.
Dieses Argument hängt vom Wert von @freq_type
ab Argument, wie in der folgenden Tabelle beschrieben:
Wert von freq_type | Wirkung auf freq_interval |
---|---|
1 (einmal) | freq_interval ist unbenutzt. |
4 (täglich) | Jedes freq_interval Tage. |
8 (wöchentlich) | freq_interval ist eines oder mehrere der Folgenden (kombiniert mit einem OR logischer Operator):1 (Sonntag) 2 (Montag) 4 (Dienstag) 8 (Mittwoch) 16 (Donnerstag) 32 (Freitag) 64 (Samstag) |
16 (monatlich) | Auf dem 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 (beim Start des SQLServerAgent-Dienstes) | freq_interval ist unbenutzt. |
128 | freq_interval ist unbenutzt. |
@freq_recurrence_factor
Dies gibt die Anzahl der Wochen oder Monate zwischen der geplanten Ausführung eines Jobs an.
Dies ist int , mit einem Standardwert von 0
, und wird nur verwendet, wenn freq_type
ist 8
, 16
, oder 32
.
@active_start_time
Gibt die Zeit an einem beliebigen Tag zwischen dem @active_start_date
an und das @active_end_date
Argumente, um mit der Ausführung eines Jobs zu beginnen. @active_start_time
ist int , mit einem Standardwert von 000000
, was 12:00:00 Uhr anzeigt. im 24-Stunden-Format und muss im Formular HHMMSS.
@active_start_date
Obwohl in meinen obigen Beispielen nicht enthalten, ist @active_start_date
Mit dem Argument können Sie das Datum angeben, an dem die Ausführung eines Jobs beginnen kann. Dies ist int , mit einem Standardwert von NULL, der das heutige Datum angibt. Das Datum hat das Format JJJJMMTT.
@active_end_date
Sie können auch ein @active_end_date
angeben -Argument, das das Datum angibt, an dem die Ausführung eines Jobs beendet werden kann.
@active_end_date
ist int , mit einem Standardwert von 99991231
, was den 31. Dezember 9999 angibt. Das Datum hat das Format JJJJMMTT.
Weitere Informationen
Siehe die Microsoft-Dokumentation für sp_add_schedule
und/oder die Microsoft-Dokumentation für sp_add_jobschedule
für weitere Einzelheiten zu den verschiedenen Argumenten und ihren akzeptierten Werten.