sp_help_job (Transact-SQL)
Gibt Informationen zu Aufträgen zurück, mit denen der SQL Server-Agent automatisierte Aktivitäten in SQL Server ausführt.
Syntax
sp_help_job { [ @job_id = ] job_id
[ @job_name = ] 'job_name' }
[ , [ @job_aspect = ] 'job_aspect' ]
[ , [ @job_type = ] 'job_type' ]
[ , [ @owner_login_name = ] 'login_name' ]
[ , [ @subsystem = ] 'subsystem' ]
[ , [ @category_name = ] 'category' ]
[ , [ @enabled = ] enabled ]
[ , [ @execution_status = ] status ]
[ , [ @date_comparator = ] 'date_comparison' ]
[ , [ @date_created = ] date_created ]
[ , [ @date_last_modified = ] date_modified ]
[ , [ @description = ] 'description_pattern' ]
Argumente
[ @job_id =] job_id
Die ID des Auftrags. job_id ist vom Datentyp uniqueidentifier; der Standardwert ist NULL.[ @job_name =] 'job_name'
Der Name des Auftrags. job_name ist ein Wert vom Datentyp sysname. Der Standardwert ist NULL.Hinweis Es muss entweder job_id oder job_name angegeben werden, beide Angaben sind jedoch nicht möglich.
[ @job_aspect =] 'job_aspect'
Das Auftragsattribut, das angezeigt werden soll. job_aspect hat den Datentyp varchar(9) und den Standardwert NULL. Die folgenden Werte sind möglich.Wert
Beschreibung
ALL
Auftragsaspektinformationen
JOB
Auftragsinformationen
SCHEDULES
Zeitplaninformationen
STEPS
Auftragsschrittinformationen
TARGETS
Zielinformationen
[ @job_type =] 'job_type'
Die Auftragstypen, die in den Bericht eingeschlossen werden sollen. job_type ist vom Datentyp varchar(12); der Standard ist NULL. Mögliche Werte für job_type sind LOCAL und MULTI-SERVER.[ @owner_login_name = ] 'login_name'
Der Anmeldename des Besitzers des Auftrags. login_name hat den Datentyp sysname und den Standardwert NULL.[ @subsystem =] 'subsystem'
Der Name des Teilsystems. subsystem ist ein Wert vom Datentyp nvarchar(40). Der Standardwert ist NULL.[ @category_name = ] 'category'
Der Name der Kategorie. category hat den Datentyp sysname und den Standardwert NULL.[ @enabled = ] enabled
Eine Zahl, die anzeigt, ob Informationen für aktivierte oder deaktivierte Aufträge angezeigt werden. enabled hat den Datentyp tinyint und den Standardwert NULL. 1 zeigt aktivierte Aufträge, und 0 zeigt deaktivierte Aufträge an.[ @execution_status =] status
Der Ausführungsstatus für die Aufträge. status hat den Datentyp int und den Standardwert NULL. Die folgenden Werte sind möglich.Wert
Beschreibung
0
Nur die Aufträge werden zurückgegeben, die sich nicht im Leerlauf befinden oder unterbrochen sind.
1
Wird ausgeführt
2
Wartet auf Thread
3
Zwischen Wiederholungen
4
Im Leerlauf
5
Unterbrochen
7
Abschlussaktionen werden ausgeführt
[ @date_comparator =] 'date_comparison'
Der Vergleichsoperator, der für Vergleiche von date_created und date_modified verwendet werden soll. date_comparison hat den Datentyp char(1). Mögliche Werte sind =, < oder >.[ @date_created =] date_created
Das Datum, an dem der Auftrag erstellt wurde. date_createdhat den Datentyp datetime und den Standardwert NULL.[ @date_last_modified =] date_modified
Das Datum, an dem der Auftrag zuletzt verändert wurde. date_modified hat den Datentyp datetime und den Standardwert NULL.[ @description =] 'description_pattern'
Die Beschreibung des Auftrags. description_pattern hat den Datentyp nvarchar(512) und den Standardwert NULL. description_pattern kann die SQL Server-Platzhalterzeichen für den Mustervergleich enthalten.
Rückgabecodewerte
0 (Erfolg) oder 1 (Fehler)
Resultsets
Wenn keine Argumente angegeben werden, gibt sp_help_job das folgende Resultset zurück.
Spaltenname |
Datentyp |
Beschreibung |
---|---|---|
job_id |
uniqueidentifier |
Eindeutige ID des Auftrags |
originating_server |
nvarchar(30) |
Name des Servers, von dem der Auftrag stammt |
name |
sysname |
Name des Auftrags |
enabled |
tinyint |
Zeigt an, ob der Auftrag für die Ausführung aktiviert ist |
description |
nvarchar(512) |
Beschreibung des Auftrags |
start_step_id |
int |
ID des Schritts in dem Auftrag, bei dem die Ausführung beginnen soll |
category |
sysname |
Auftragskategorie |
owner |
sysname |
Auftragsbesitzer |
notify_level_eventlog |
int |
Bitmaske, die anzeigt, unter welchen Umständen ein Benachrichtigungsereignis im Microsoft Windows-Anwendungsprotokoll protokolliert werden soll. Kann einen der folgenden Werte annehmen: 0 = Nie 1 = Bei erfolgreicher Ausführung des Auftrags 2 = Bei Fehlschlagen des Auftrags 3 = Bei Abschluss des Auftrags (unabhängig vom Ergebnis des Auftrags) |
notify_level_email |
int |
Bitmaske, die anzeigt, unter welchen Umständen bei Abschluss eines Auftrags eine Benachrichtigungs-E-Mail gesendet werden soll. Dieselben Werte wie bei notify_level_eventlog sind möglich. |
notify_level_netsend |
int |
Bitmaske, die anzeigt, unter welchen Umständen bei Abschluss eines Auftrags eine Netzwerkmeldung gesendet werden soll. Dieselben Werte wie bei notify_level_eventlog sind möglich. |
notify_level_page |
int |
Bitmaske, die anzeigt, unter welchen Umständen bei Abschluss eines Auftrags eine Benachrichtigung per Pager gesendet werden soll. Dieselben Werte wie bei notify_level_eventlog sind möglich. |
notify_email_operator |
sysname |
E-Mail-Name des Operators, der benachrichtigt werden soll |
notify_netsend_operator |
sysname |
Name des Computers oder Benutzers, der beim Senden von Netzwerkmeldungen verwendet wird |
notify_page_operator |
sysname |
Name des Computers oder Benutzers, der beim Senden einer Pagerbenachrichtigung verwendet wird |
delete_level |
int |
Bitmaske, die anzeigt, unter welchen Umständen der Auftrag bei einem Auftragsabschluss gelöscht werden soll. Dieselben Werte wie bei notify_level_eventlog sind möglich. |
date_created |
datetime |
Datum, an dem der Auftrag erstellt wurde |
date_modified |
datetime |
Datum, an dem der Auftrag zuletzt geändert wurde |
version_number |
int |
Version des Auftrags (wird automatisch jedes Mal aktualisiert, wenn der Auftrag geändert wird) |
last_run_date |
int |
Datum, an dem die Ausführung des Auftrags zuletzt gestartet wurde |
last_run_time |
int |
Uhrzeit, zu der die Ausführung des Auftrags zuletzt gestartet wurde |
last_run_outcome |
int |
Ergebnis der letzten Ausführung des Auftrags: 0 = Fehler 1 = Erfolg 3 = Abgebrochen 5 = Unbekannt |
next_run_date |
int |
Datum, für das die nächste Ausführung des Auftrags geplant ist |
next_run_time |
int |
Uhrzeit, zu der die nächste Ausführung des Auftrags geplant ist |
next_run_schedule_id |
int |
Zeitplan-ID für nächste Ausführung |
current_execution_status |
int |
Aktueller Ausführungsstatus |
current_execution_step |
sysname |
Aktueller Ausführungsschritt des Auftrags |
current_retry_attempt |
int |
Wenn der Auftrag ausgeführt wird und der Schritt wiederholt wurde, ist dies der aktuelle Wiederholungsversuch |
has_step |
int |
Anzahl der Auftragsschritte des Auftrags |
has_schedule |
int |
Anzahl der Auftragszeitpläne des Auftrags |
has_target |
int |
Anzahl der Zielserver des Auftrags |
type |
int |
Auftragstyp: 1 = Lokaler Auftrag 2 = Multiserverauftrag 0 = Auftrag hat keine Zielserver |
Wenn job_id oder job_name angegeben wird, gibt sp_help_job die folgenden zusätzlichen Resultsets für Auftragsschritte, Auftragszeitpläne und Auftragszielserver zurück.
Im Folgenden wird das Resultset für Auftragsschritte aufgeführt.
Spaltenname |
Datentyp |
Beschreibung |
---|---|---|
step_id |
int |
Eindeutiger Bezeichner (für diesen Auftrag) für den Schritt |
step_name |
sysname |
Name des Schritts |
subsystem |
nvarchar(40) |
Subsystem, in dem der Schrittbefehl ausgeführt werden soll |
command |
nvarchar(3200) |
Auszuführender Befehl |
flags |
nvarchar(4000) |
Bitmaske der Werte, die das Schrittverhalten steuern |
cmdexec_success_code |
int |
Bei einem CmdExec-Schritt ist dies der Prozessexitcode eines erfolgreichen Befehls. |
on_success_action |
nvarchar(4000) |
Mögliche Aktionen, wenn der Schritt erfolgreich durchgeführt wird: 1 = Beenden mit Erfolg 2 = Beenden mit Fehler 3 = Weiter mit nächsten Schritt 4 = Zu einem angegebenen Schritt wechseln |
on_success_step_id |
int |
Wenn on_success_action den Wert 4 aufweist, wird hiermit der nächste auszuführende Schritt angegeben. |
on_fail_action |
nvarchar(4000) |
Auszuführende Aktion, wenn der Schritt einen Fehler erzeugt. Dieselben Werte wie bei on_success_action sind möglich. |
on_fail_step_id |
int |
Wenn on_fail_action den Wert 4 aufweist, wird hiermit der nächste auszuführende Schritt angegeben. |
server |
sysname |
Reserviert. |
database_name |
sysname |
Für einen Transact-SQL-Schritt ist dies die Datenbank, in der der Befehl ausgeführt wird. |
database_user_name |
sysname |
Für einen Transact-SQL-Schritt ist dies der Datenbank-Benutzerkontext, in dem der Befehl ausgeführt wird. |
retry_attempts |
int |
Die maximale Anzahl von Wiederholungsversuchen für den Befehl (falls er nicht erfolgreich ist), bevor der Schritt als fehlgeschlagen angesehen wird |
retry_interval |
int |
Das Intervall (in Minuten) zwischen den Wiederholungsversuchen |
os_run_priority |
varchar(4000) |
Reserviert |
output_file_name |
varchar(200) |
Datei, in die die Befehlsausgabe geschrieben werden soll (nur Transact-SQL- und CmdExec-Schritte). |
last_run_outcome |
int |
Ergebnis der letzten Ausführung des Schritts: 0 = Fehlgeschlagen 1 = Erfolg 3 = Abgebrochen 5 = Unbekannt |
last_run_duration |
int |
Ausführungsdauer (in Sekunden) des Schritts bei der letzten Ausführung |
last_run_retries |
int |
Anzahl der Wiederholungsversuche für den Befehl bei der letzten Ausführung des Schritts |
last_run_date |
int |
Datum, an dem die Ausführung des Schritts zuletzt gestartet wurde |
last_run_time |
int |
Uhrzeit, zu der die Ausführung des Schritts zuletzt gestartet wurde |
proxy_id |
int |
Proxy für den Auftragsschritt |
Im Folgenden wird das Resultset für Auftragszeitpläne aufgeführt.
Spaltenname |
Datentyp |
Beschreibung |
---|---|---|
schedule_id |
int |
Bezeichner des Zeitplans (eindeutig für alle Aufträge) |
schedule_name |
sysname |
Name des Zeitplans (eindeutig nur für diesen Auftrag) |
enabled |
int |
Gibt an, ob der Zeitplan aktiviert (1) oder deaktiviert (0) ist. |
freq_type |
int |
Zeigt an, wann der Auftrag ausgeführt werden soll: 1 = Einmal 4 = Täglich 8 = Wöchentlich 16 = Monatlich 32 = Monatlich, in Abhängigkeit von freq_interval 64 = Ausführung, wenn der SQLServerAgent-Dienst gestartet wird |
freq_interval |
int |
Tage, an denen der Auftrag ausgeführt wird. Der Wert hängt vom Wert für freq_type ab. Weitere Informationen finden Sie unter sp_add_schedule (Transact-SQL). |
freq_subday_type |
Int |
Einheiten für freq_subday_interval. Weitere Informationen finden Sie unter sp_add_schedule (Transact-SQL). |
freq_subday_interval |
int |
Anzahl der mit freq_subday_type angegebenen Zeiteinheiten zwischen den einzelnen Ausführungen des Auftrags. Weitere Informationen finden Sie unter sp_add_schedule (Transact-SQL). |
freq_relative_interval |
int |
Auftreten von freq_interval des geplanten Auftrags in jedem Monat. Weitere Informationen finden Sie unter sp_add_schedule (Transact-SQL). |
freq_recurrence_factor |
int |
Anzahl der Monate zwischen der geplanten Ausführung des Auftrags |
active_start_date |
int |
Datum, an dem die Ausführung des Auftrags beginnen soll |
active_end_date |
int |
Datum, an dem die Ausführung des Auftrags beendet werden soll |
active_start_time |
int |
Uhrzeit, zu der die Ausführung des Auftrags am active_start_date beginnen soll |
active_end_time |
int |
Uhrzeit, zu der die Ausführung des Auftrags am active_end_date beendet werden soll |
date_created |
datetime |
Datum, an dem der Zeitplan erstellt wird |
schedule_description |
nvarchar(4000) |
Eine Beschreibung des Zeitplans in englischer Sprache (falls angefordert) |
next_run_date |
int |
Datum, an dem der Zeitplan die nächste Ausführung des Auftrags bewirken wird |
next_run_time |
int |
Uhrzeit, zu der der Zeitplan die nächste Ausführung des Auftrags bewirken wird |
schedule_uid |
uniqueidentifier |
Bezeichner für den Zeitplan |
job_count |
int |
Gibt die Anzahl Aufträge zurück, die auf diesen Zeitplan verweisen |
Im Folgenden wird das Resultset für Auftragszielserver aufgeführt.
Spaltenname |
Datentyp |
Beschreibung |
---|---|---|
server_id |
int |
Bezeichner des Zielservers |
server_name |
nvarchar(30) |
Computername des Zielservers |
enlist_date |
datetime |
Datum, an dem der Zielserver auf dem Masterserver eingetragen wurde |
last_poll_date |
datetime |
Datum, an dem der Zielserver den Masterserver zuletzt abgerufen hat |
last_run_date |
int |
Datum, an dem die Ausführung des Auftrags auf diesem Zielserver zuletzt gestartet wurde |
last_run_time |
int |
Uhrzeit, zu der die Ausführung des Auftrags auf diesem Zielserver zuletzt gestartet wurde |
last_run_duration |
int |
Dauer des Auftrags bei der letzten Ausführung auf diesem Zielserver |
last_run_outcome |
tinyint |
Ergebnis des Auftrags bei der letzten Ausführung auf diesem Server: 0 = Fehlgeschlagen 1 = Erfolg 3 = Abgebrochen 5 = Unbekannt |
last_outcome_message |
nvarchar(1024) |
Ergebnismeldung des Auftrags bei der letzten Ausführung auf diesem Zielserver |
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.
Mitglieder von SQLAgentUserRole können nur die Aufträge anzeigen, deren Besitzer sie sind. Mitglieder der sysadmin, SQLAgentReaderRole und SQLAgentOperatorRole-Rolle können alle lokalen und Multiserveraufträge beenden.
Beispiele
A. Auflisten der Informationen für alle Aufträge
Das folgende Beispiel führt die sp_help_job-Prozedur ohne Parameter aus, um Informationen für alle aktuell in der msdb-Datenbank definierten Aufträge zurückzugeben.
USE msdb ;
GO
EXEC dbo.sp_help_job ;
GO
B. Auflisten der Informationen für Aufträge, die einem bestimmten Kriterium entsprechen
Im folgenden Beispiel werden Auftragsinformationen für die Multiserveraufträge im Besitz von françoisa aufgelistet, wenn der Auftrag aktiviert und ausgeführt wird.
USE msdb ;
GO
EXEC dbo.sp_help_job
@job_type = N'MULTI-SERVER',
@owner_login_name = N'françoisa',
@enabled = 1,
@execution_status = 1 ;
GO
C. Auflisten aller Aspekte von Informationen für einen Auftrag
Im folgenden Beispiel werden alle Aspekte der Informationen für den Auftrag NightlyBackups aufgelistet.
USE msdb ;
GO
EXEC dbo.sp_help_job
@job_name = N'NightlyBackups',
@job_aspect = N'ALL' ;
GO