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.
Transact-SQL-Syntaxkonventionen
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 Auftrags-ID job_id ist vom Datentyp uniqueidentifier. Der Standardwert ist NULL.[ @job_name =] 'job_name'
Der Name des Auftrags. job_name ist 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 ist vom Datentyp varchar(9). Der Standardwert ist NULL, und Die folgenden Werte sind möglich:Wert
Beschreibung
ALL
Auftragsaspektinformationen
JOB
Auftragsinformationen
SCHEDULES
Zeitplaninformationen
STEPS
Auftragsschrittinformationen
TARGETS
Zielinformationen
[ @job_type =] 'job_type'
Der Typ von Aufträgen, die im Bericht enthalten sein sollen. job_type ist vom Datentyp varchar(12). Der Standardwert ist NULL. Der job_type kann LOCAL oder MULTI-SERVER lauten.[ @owner_login_name =] 'login_name'
Der Anmeldename für den Besitzer des Auftrags. login_name ist vom Datentyp sysname. Der Standardwert ist NULL.[ @subsystem =] 'subsystem'
Der Name des Subsystems. subsystem ist vom Datentyp nvarchar(40). Der Standardwert ist NULL.[ @category_name =] 'category'
Der Name der Kategorie. category ist vom Datentyp sysname. Der Standardwert ist NULL.[ @enabled =] enabled
Eine Zahl, die angibt, ob Informationen für aktivierte oder deaktivierte Aufträge angezeigt werden. enabled ist vom Datentyp tinyint. Der Standardwert ist NULL. 1 zeigt aktivierte Aufträge, und 0 zeigt deaktivierte Aufträge an.[ @execution_status =] status
Der Ausführungsstatus der Aufträge. status ist vom Datentyp int. Der Standardwert ist NULL, und 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 in Vergleichen von date_created und date_modified verwendet werden soll. date_comparison ist vom Datentyp char(1) und kann =, < oder > sein.[ @date_created =] date_created
Das Datum, an dem der Auftrag erstellt wurde. date_createdist vom Datentyp datetime. Der Standardwert ist NULL.[ @date_last_modified =] date_modified
Das Datum, an dem der Auftrag zuletzt geändert wurde. date_modified ist vom Datentyp datetime. Der Standardwert ist NULL.[ @description =] 'description_pattern'
Die Beschreibung des Auftrags. description_pattern ist vom Datentyp nvarchar(512). Der Standardwert ist NULL. description_pattern kann die SQL Server-Platzhalterzeichen für Mustervergleiche 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 |
Die 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 für den Auftrag. |
start_step_id |
int |
Die ID des Schritts im 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 |
Die Anzahl der Zielserver des Auftrags. |
Typ |
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 = Fehler 1 = Erfolg 3 = Abgebrochen 5 = Unbekannt |
last_run_duration |
int |
Die 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. Anderen Benutzern muss eine der folgenden festen Datenbankrollen des SQL Server-Agents in der msdb-Datenbank zugewiesen werden:
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 von 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 von Informationen für Aufträge, die ein bestimmtes Kriterium erfüllen
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 der 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