Teilen über


sp_help_jobhistory (Transact-SQL)

Gilt für: SQL Server

Stellt Informationen zu den Aufträgen für Server in der Domäne zur Multiserveradministration bereit.

Transact-SQL-Syntaxkonventionen

Syntax

sp_help_jobhistory
    [ [ @job_id = ] 'job_id' ]
    [ , [ @job_name = ] N'job_name' ]
    [ , [ @step_id = ] step_id ]
    [ , [ @sql_message_id = ] sql_message_id ]
    [ , [ @sql_severity = ] sql_severity ]
    [ , [ @start_run_date = ] start_run_date ]
    [ , [ @end_run_date = ] end_run_date ]
    [ , [ @start_run_time = ] start_run_time ]
    [ , [ @end_run_time = ] end_run_time ]
    [ , [ @minimum_run_duration = ] minimum_run_duration ]
    [ , [ @run_status = ] run_status ]
    [ , [ @minimum_retries = ] minimum_retries ]
    [ , [ @oldest_first = ] oldest_first ]
    [ , [ @server = ] N'server' ]
    [ , [ @mode = ] 'mode' ]
[ ; ]

Argumente

[ @job_id = ] 'job_id'

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

[ @job_name = ] N'job_name'

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

[ @step_id = ] step_id

Die Schritt-ID. @step_id ist int mit einem Standardwert von NULL.

[ @sql_message_id = ] sql_message_id

Die Identifikationsnummer der Fehlermeldung, die von SQL Server beim Ausführen des Auftrags zurückgegeben wird. @sql_message_id ist int, mit einem Standardwert von NULL.

[ @sql_severity = ] sql_severity

Der Schweregrad der Fehlermeldung, die von SQL Server beim Ausführen des Auftrags zurückgegeben wurde. @sql_severity ist int, mit einem Standardwert von NULL.

[ @start_run_date = ] start_run_date

Das Datum, an dem der Auftrag gestartet wurde. @start_run_date ist int mit einem Standardwert von NULL. @start_run_date muss in das Formular yyyyMMddeingegeben werden, wobei yyyy es sich um ein vierstelliges Jahr handelt, MM einen zweistelligen Monatsnamen und dd einen zweistelligen Tagnamen ist.

[ @end_run_date = ] end_run_date

Das Datum, an dem der Auftrag abgeschlossen wurde. @end_run_date ist int mit einem Standardwert von NULL. @end_run_date muss in das Formular yyyyMMddeingegeben werden, wobei yyyy es sich um ein vierstelliges Jahr handelt, MM einen zweistelligen Monatsnamen und dd einen zweistelligen Tagnamen ist.

[ @start_run_time = ] start_run_time

Die Uhrzeit, zu der der Auftrag gestartet wurde. @start_run_time ist int mit einem Standardwert von NULL. @start_run_time muss in das Formular HHmmsseingegeben werden, wobei HH es sich um eine zweistellige Stunde des Tages handelt, mm eine zweistellige Minute des Tages und ss ein zweistellige Sekunde des Tages ist.

[ @end_run_time = ] end_run_time

Die Uhrzeit, zu der die Ausführung des Auftrags abgeschlossen wurde. @end_run_time ist int mit einem Standardwert von NULL. @end_run_time muss in das Formular HHmmsseingegeben werden, wobei HH es sich um eine zweistellige Stunde des Tages handelt, mm eine zweistellige Minute des Tages und ss ein zweistellige Sekunde des Tages ist.

[ @minimum_run_duration = ] minimum_run_duration

Die minimale Zeit für den Abschluss des Auftrags. @minimum_run_duration ist int mit einem Standardwert von NULL. @minimum_run_duration muss in das Formular HHmmsseingegeben werden, wobei HH es sich um eine zweistellige Stunde des Tages handelt, mm eine zweistellige Minute des Tages und ss ein zweistellige Sekunde des Tages ist.

[ @run_status = ] run_status

Der Ausführungsstatus des Auftrags.@run_status ist int und kann einer dieser Werte sein.

Wert Beschreibung
0 Fehler
1 Erfolgreich
2 Wiederholen (nur Schritte)
3 Storniert
4 In Bearbeitungsmeldung
5 Unbekannt

[ @minimum_retries = ] minimum_retries

Die Mindestanzahl von Wiederholungsversuchen für die Ausführung eines Auftrags. @minimum_retries ist int mit einem Standardwert von NULL.

[ @oldest_first = ] oldest_first

Gibt an, ob die Ausgabe zuerst mit den ältesten Aufträgen dargestellt werden soll. @oldest_first ist int mit einem Standardwert von 0.

  • 0 stellt zuerst die neuesten Aufträge vor.
  • 1 stellt zuerst die ältesten Aufträge dar.

[ @server = ] N'server'

Der Name des Servers, auf dem der Auftrag ausgeführt wurde. @server ist "sysname" mit dem Standardwert "NULL.

[ @mode = ] 'Mode'

Gibt an, ob SQL Server alle Spalten im Resultset (FULL) oder eine Zusammenfassung (SUMMARY) der Spalten druckt. @mode ist varchar(7) mit einem Standardwert von SUMMARY.

Rückgabecodewerte

0 (erfolgreich) oder 1 Fehler.

Resultset

Die tatsächliche Spaltenliste hängt vom Wert @mode ab. Der umfassendste Satz von Spalten wird in der folgenden Tabelle angezeigt und wird zurückgegeben, wenn @mode ist FULL.

Spaltenname Datentyp BESCHREIBUNG
instance_id int Verlaufseintrags-ID
job_id uniqueidentifier Auftragsidentifikationsnummer.
job_name sysname Auftragsname.
step_id int Schrittidentifikationsnummer (0 für einen Auftragsverlauf).
step_name sysname Schrittname (NULL für einen Jobverlauf).
sql_message_id int Bei einem Transact-SQL-Schritt ist die letzte Transact-SQL-Fehlernummer beim Ausführen des Befehls aufgetreten.
sql_severity int Bei einem Transact-SQL-Schritt ist der höchste Transact-SQL-Fehlerschweregrad beim Ausführen des Befehls aufgetreten.
message nvarchar(1024) Meldung zu Auftrags- oder Schrittverlauf.
run_status int Ergebnis des Auftrags oder Schritts.
run_date int Datum, an dem das Ausführen des Auftrags oder Schritts begann.
run_time int Uhrzeit, zu der das Ausführen des Auftrags oder Schritts begann.
run_duration int Verstrichene Zeit bei der Ausführung des Auftrags oder Schritts im HHmmss Format.
operator_emailed nvarchar(20) Betreiber, der in Bezug auf diesen Auftrag per E-Mail gemailt wurde (gilt NULL für den Schrittverlauf).
operator_netsent nvarchar(20) Der Betreiber, der eine Netzwerknachricht zu diesem Auftrag gesendet hat (gilt NULL für den Schrittverlauf).
operator_paged nvarchar(20) Operator, der in Bezug auf diesen Auftrag ausgelagert wurde (ist NULL für den Schrittverlauf).
retries_attempted int Die Wiederholungsversuche für den Schritt (für einen Auftragsverlauf immer 0).
server nvarchar(30) Server, auf dem der Schritt oder Auftrag ausgeführt wird. Ist immer (local).

Hinweise

sp_help_jobhistory gibt einen Bericht mit dem Verlauf der angegebenen geplanten Aufträge zurück. Werden keine Parameter angegeben, enthält der Bericht den Verlauf aller geplanten Aufträge.

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 der SQLAgentUserRole-Datenbankrolle können nur den Verlauf für Aufträge anzeigen, die sie besitzen.

Beispiele

A. Auflisten aller Auftragsinformationen für einen Auftrag

Im folgenden Beispiel werden alle Auftragsinformationen für den NightlyBackups-Auftrag aufgelistet.

USE msdb;
GO

EXEC dbo.sp_help_jobhistory
    @job_name = N'NightlyBackups';
GO

B. Auflisten von Informationen für Aufträge, die bestimmten Bedingungen entsprechen

Im folgenden Beispiel werden alle Spalten und alle Auftragsinformationen für alle fehlgeschlagenen Aufträge und fehlgeschlagenen Auftragsschritte mit der Fehlermeldung 50100 (eine benutzerdefinierte Fehlermeldung) und einem Schweregrad von 20 aufgelistet.

USE msdb;
GO

EXEC dbo.sp_help_jobhistory
    @sql_message_id = 50100,
    @sql_severity = 20,
    @run_status = 0,
    @mode = N'FULL';
GO