Freigeben über


sp_help_job (Transact-SQL)

Gilt für: SQL Server

Gibt Informationen zu Aufträgen zurück, die von SQL Server-Agent zum Ausführen automatisierter Aktivitäten in SQL Server verwendet werden.

Transact-SQL-Syntaxkonventionen

Syntax

sp_help_job
    [ [ @job_id = ] 'job_id' ]
    [ , [ @job_name = ] N'job_name' ]
    [ , [ @job_aspect = ] 'job_aspect' ]
    [ , [ @job_type = ] 'job_type' ]
    [ , [ @owner_login_name = ] N'owner_login_name' ]
    [ , [ @subsystem = ] N'subsystem' ]
    [ , [ @category_name = ] N'category_name' ]
    [ , [ @enabled = ] enabled ]
    [ , [ @execution_status = ] execution_status ]
    [ , [ @date_comparator = ] 'date_comparator' ]
    [ , [ @date_created = ] date_created ]
    [ , [ @date_last_modified = ] date_last_modified ]
    [ , [ @description = ] N'description' ]
[ ; ]

Argumente

[ @job_id = ] 'job_id'

Die Auftrags-ID @job_id ist eindeutiger Bezeichner mit einem Standardwert von NULL.

Um einen bestimmten Auftrag anzuzeigen, muss entweder @job_id oder @job_name angegeben werden. Lassen Sie sowohl @job_id als auch @job_name aus, um Informationen zu allen Aufträgen zurückzugeben.

[ @job_name = ] N'job_name'

Der Name des Auftrags. @job_name ist "sysname" mit der Standardeinstellung "NULL.

Um einen bestimmten Auftrag anzuzeigen, muss entweder @job_id oder @job_name angegeben werden. Lassen Sie sowohl @job_id als auch @job_name aus, um Informationen zu allen Aufträgen zurückzugeben.

[ @job_aspect = ] 'job_aspect'

Das Auftragsattribut, das angezeigt werden soll. @job_aspect ist varchar(9) und kann einer dieser Werte sein.

Wert Beschreibung
ALL Auftragsaspektinformationen
JOB Stelleninformationen
SCHEDULES Zeitplaninformationen
STEPS Auftragsschrittinformationen
TARGETS Zielinformationen

[ @job_type = ] 'job_type'

Der Typ der Aufträge, die in den Bericht aufgenommen werden sollen.@job_type ist varchar(12) mit einem Standardwert von NULL. @job_type kann sein LOCAL oder MULTI-SERVER.

[ @owner_login_name = ] N'owner_login_name'

Der Anmeldename für den Besitzer des Auftrags. @owner_login_name ist "sysname" mit einem Standardwert von NULL.

[ @subsystem = ] N'Subsystem'

Der Name des Subsystems. @subsystem ist nvarchar(40), wobei die Standardeinstellung istNULL.

[ @category_name = ] N'category_name'

Name der Kategorie. @category_name ist "sysname" mit der Standardeinstellung "NULL.

[ @enabled = ] aktiviert

Eine Zahl, die angibt, ob Informationen für aktivierte oder deaktivierte Aufträge angezeigt werden. @enabled ist winzig, mit einem Standardwert von NULL.

  • 1 gibt aktivierte Aufträge an.
  • 0 gibt deaktivierte Aufträge an.

[ @execution_status = ] execution_status

Der Ausführungsstatus der Aufträge. @execution_status ist int und kann einer dieser Werte sein.

Wert Beschreibung
0 Gibt nur die Aufträge zurück, die nicht im Leerlauf oder angehalten sind.
1 Ausführend.
2 Wartet auf Thread
3 Zwischen Wiederholungen
4 Im Leerlauf.
5 Unterbrochen
7 Abschlussaktionen werden ausgeführt

[ @date_comparator = ] 'date_comparator'

Der Vergleichsoperator, der in Vergleichen von @date_created und @date_last_modified verwendet werden soll. @date_comparator ist Zeichen(1) und kann =, oder <>.

[ @date_created = ] date_created

Das Datum, an dem der Auftrag erstellt wurde. @date_created ist "datetime" mit einem Standardwert von NULL.

[ @date_last_modified = ] date_last_modified

Das Datum, an dem der Auftrag zuletzt geändert wurde. @date_last_modified ist "datetime" mit der Standardeinstellung "NULL.

[ @description = ] N'description'

Die Beschreibung des Auftrags. @description ist nvarchar(512), mit einem Standardwert von NULL. @description können die Wildcardzeichen für den Musterabgleich enthalten.

Rückgabecodewerte

0 (erfolgreich) oder 1 Fehler.

Resultset

Wenn keine Argumente angegeben werden, sp_help_job wird dieses Resultset zurückgegeben.

Spaltenname Datentyp Beschreibung
job_id uniqueidentifier Eindeutige ID des Auftrags.
originating_server nvarchar(30) Name des Servers, von dem der Auftrag stammt
name sysname Der Name des Auftrags.
enabled tinyint Gibt an, ob der Auftrag aktiviert ist, damit er ausgeführt werden kann.
description nvarchar(512) Die Beschreibung des Auftrags.
start_step_id int ID des Schrittes in dem Auftrag, bei dem die Ausführung beginnen soll.
category sysname Auftragskategorie
owner sysname Auftragsbesitzer
notify_level_eventlog int Eine Bitmaske, die die Umstände angibt, in denen ein Benachrichtigungsereignis im Microsoft Windows-Anwendungsprotokoll protokolliert werden soll. Einer der folgenden Werte ist möglich:

0 = Nie
1 = Wenn ein Auftrag erfolgreich ist
2 = Wenn der Auftrag fehlschlägt
3 = Wann immer der Auftrag abgeschlossen ist (unabhängig vom Arbeitsergebnis)
notify_level_email int Eine Bitmaske, die die Umstände angibt, unter denen eine Benachrichtigungs-E-Mail gesendet werden soll, wenn ein Auftrag abgeschlossen ist. Mögliche Werte sind identisch mit .notify_level_eventlog
notify_level_netsend int Eine Bitmaske, die die Umstände angibt, in denen eine Netzwerknachricht gesendet werden soll, wenn ein Auftrag abgeschlossen ist. Mögliche Werte sind identisch mit .notify_level_eventlog
notify_level_page int Eine Bitmaske, die die Umstände angibt, unter denen eine Seite gesendet werden soll, wenn ein Auftrag abgeschlossen ist. Mögliche Werte sind identisch mit .notify_level_eventlog
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 Eine Bitmaske, die die Umstände angibt, unter denen der Auftrag gelöscht werden soll, wenn ein Auftrag abgeschlossen ist. Mögliche Werte sind identisch mit .notify_level_eventlog
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 des Auftrags beim letzten Ausführungsvorgang:

0 = Fehlgeschlagen
1 = Erfolgreich
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:

1 = Ausführen
2 = Auf Thread warten
3 = Zwischen Wiederholungen
4 = Leerlauf
5 = Angehalten
6 = Veraltet
7 = PerformingCompletionActions
current_execution_step sysname Aktueller Ausführungsschritt des Auftrags
current_retry_attempt int Wenn der Auftrag ausgeführt wird und der Schritt erneut versucht 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.
type int Auftragstyp:

1 = Lokaler Auftrag.
2 = Multiserverauftrag.
0 = Auftrag hat keine Zielserver.

Wenn @job_id oder @job_name angegeben ist, sp_help_job werden diese zusätzlichen Resultsets für Auftragsschritte, Auftragspläne und Auftragszielserver zurückgegeben.

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 Prozessendecode eines erfolgreichen Befehls.
on_success_action nvarchar(4000) Mögliche Aktionen, wenn der Schritt erfolgreich durchgeführt wird:

1 = Mit Erfolg beenden.
2 = Mit Fehler beenden.
3 = Zum nächsten Schritt wechseln.
4 = Gehe zu Schritt.
on_success_step_id int Ist on_success_action dies 4der Fall, gibt dies den nächsten Auszuführenden Schritt an.
on_fail_action nvarchar(4000) Auszuführende Aktion, wenn der Schritt einen Fehler erzeugt. Werte sind identisch mit den Werten für on_success_action.
on_fail_step_id int Ist on_fail_action dies 4der Fall, gibt dies den nächsten Auszuführenden Schritt an.
server sysname Reserviert.
database_name sysname Bei einem Transact-SQL-Schritt ist dies die Datenbank, in der der Befehl ausgeführt wird.
database_user_name sysname Bei einem Transact-SQL-Schritt ist dies der Datenbankbenutzerkontext, in dem der Befehl ausgeführt wird.
retry_attempts int Maximale Anzahl der Wiederholungsversuche des Befehls (wenn er nicht erfolgreich ist), bevor der Schritt als fehlgeschlagen eingestuft 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 = Erfolgreich
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 aktiv ist (1) oder nicht (0).
freq_type int Zeigt an, wann der Auftrag ausgeführt werden soll:

1 = Einmal
4 = Täglich
8 = Wöchentlich
16 = Monatlich
32 = Monatlich, relativ zum freq_interval
64= Ausführen, wenn SQL Server-Agent Dienst gestartet wird.
freq_interval int Tage, an dem der Auftrag ausgeführt wird. Der Wert hängt vom Wert von freq_type. Weitere Informationen finden Sie unter sp_add_schedule
freq_subday_type int Einheiten für freq_subday_interval. Weitere Informationen finden Sie unter sp_add_schedule
freq_subday_interval int Anzahl der freq_subday_type Perioden, die zwischen jeder Ausführung des Auftrags auftreten sollen. Weitere Informationen finden Sie unter sp_add_schedule
freq_relative_interval int Das Vorkommen des geplanten Auftrags in freq_interval jedem Monat. Weitere Informationen finden Sie unter sp_add_schedule
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 Zeit für den Beginn der Ausführung des Auftrags am active_start_date.
active_end_time int Zeit zum Beenden der Ausführung des Auftrags am active_end_date.
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 als Nächstes ausgeführt wird.
next_run_time int Wenn der Zeitplan als nächstes ausgeführt wird, wird der Auftrag ausgeführt.
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 = Erfolgreich
3 = Abgebrochen
5 = Unbekannt
last_outcome_message nvarchar(1024) Ergebnismeldung des Auftrags bei der letzten Ausführung auf diesem Zielserver

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.

Mitglieder von SQLAgentUserRole können nur Aufträge anzeigen, die sie besitzen. Mitglieder von sysadmin, SQLAgentReaderRole und SQLAgentOperatorRole können alle lokalen und multiserveraufträge anzeigen.

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 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