dbo.sysjobactivity (Transact-SQL)
Gilt für: SQL Server
Zeichnet aktuelle SQL Server-Agent Auftragsaktivität und -status auf. Diese Tabelle wird in der msdb -Datenbank gespeichert.
Spaltenname | Datentyp | BESCHREIBUNG |
---|---|---|
session_id | int | ID der Sitzung, die in der syssessions -Tabelle in der msdb -Datenbank gespeichert ist. |
job_id | uniqueidentifier | ID des Auftrags. |
run_requested_date | datetime | Datum und Uhrzeit, zu der der Auftrag laut Anforderung ausgeführt werden sollte. |
run_requested_source | sysname(nvarchar(128)) | Quelle der Anforderung der Auftragsausführung. 1 = SOURCE_SCHEDULER 2 = SOURCE_ALERTER 3 = SOURCE_BOOT 4 = SOURCE_USER 6 = SOURCE_ON_IDLE_SCHEDULE |
queued_date | datetime | Datum und Uhrzeit, zu der dieser Auftrag in der Warteschlange angeordnet wurde. Wird der Auftrag direkt ausgeführt, enthält diese Spalte den Wert NULL. |
start_execution_date | datetime | Datum und Uhrzeit, für die die Ausführung des Auftrags geplant wurde. |
last_executed_step_id | int | ID des letzten ausgeführten Auftragsschrittes. |
last_executed_step_ date |
datetime | Datum und Uhrzeit, zu der die Ausführung des letzten Auftragsschrittes begann. |
stop_execution_date | datetime | Datum und Uhrzeit, zu der die Ausführung des Auftrags fertig gestellt wurde. |
job_history_id | int | Wird verwendet, um eine Zeile in der sysjobhistory -Tabelle zu identifizieren. |
next_scheduled_run_date | datetime | Nächstes Datum und nächste Uhrzeit, für die die Ausführung des Auftrags geplant ist. |
Beispiel
In diesem Beispiel wird der Laufzeitstatus für alle SQL Server-Agent Aufträge zurückgegeben. Führen Sie die folgenden Transact-SQL in SQL Server Management Studio aus.
SELECT sj.Name,
CASE
WHEN sja.start_execution_date IS NULL THEN 'Not running'
WHEN sja.start_execution_date IS NOT NULL AND sja.stop_execution_date IS NULL THEN 'Running'
WHEN sja.start_execution_date IS NOT NULL AND sja.stop_execution_date IS NOT NULL THEN 'Not running'
END AS 'RunStatus'
FROM msdb.dbo.sysjobs sj
JOIN msdb.dbo.sysjobactivity sja
ON sj.job_id = sja.job_id
WHERE session_id = (
SELECT MAX(session_id) FROM msdb.dbo.sysjobactivity);