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.

Themenlink (Symbol)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 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.

    HinweisHinweis

    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