Condividi tramite


dbo.sysjobactivity (Transact-SQL)

Si applica a: SQL Server

Registra l'attività e lo stato correnti del processo di SQL Server Agent. Questa tabella viene archiviata nel database msdb .

Nome colonna Tipo di dati Descrizione
session_id int ID della sessione archiviata nella tabella syssessions nel database msdb .
job_id uniqueidentifier ID del processo.
run_requested_date datetime Data e ora della richiesta di esecuzione del processo.
run_requested_source sysname(nvarchar(128)) Autore della richiesta di esecuzione del processo.

1 = SOURCE_SCHEDULER

2 = SOURCE_ALERTER

3 = SOURCE_BOOT

4 = SOURCE_USER

6 = SOURCE_ON_IDLE_SCHEDULE
queued_date datetime Data e ora di accodamento del processo. Se il processo viene eseguito direttamente, questa colonna è NULL.
start_execution_date datetime Data e ora in cui è pianificata l'esecuzione del processo.
last_executed_step_id int ID dell'ultimo passaggio del processo eseguito.
last_executed_step_

date
datetime Data e ora di inizio dell'esecuzione dell'ultimo passaggio del processo.
stop_execution_date datetime Data e ora in cui l'esecuzione del processo è stata completata.
job_history_id int Consente di identificare una riga nella tabella sysjobhistory .
next_scheduled_run_date datetime Data e ora in cui è stata pianificata l'esecuzione successiva del processo.

Esempio

Questo esempio restituirà lo stato di runtime per tutti i processi di SQL Server Agent. Eseguire l'istruzione Transact-SQL seguente in SQL Server Management Studio.

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

Vedi anche

dbo.sysjobhistory (Transact-SQL)