Partilhar via


dbo.sysjobactivity (Transact-SQL)

Aplica-se: SQL Server

Registra a atividade e o status atuais do trabalho do SQL Server Agent. Essa tabela é armazenada no banco de dados msdb.

Nome da coluna Tipo de dados Descrição
session_id int ID da sessão armazenada na tabela syssessions no banco de dados msdb .
job_id uniqueidentifier Identificação do trabalho.
run_requested_date datetime Data e hora em que foi solicitada a execução do trabalho.
run_requested_source sysname(nvarchar(128)) Quem solicitou a execução do trabalho.

1 = SOURCE_SCHEDULER

2 = SOURCE_ALERTER

3 = SOURCE_BOOT

4 = SOURCE_USER

6 = SOURCE_ON_IDLE_SCHEDULE
queued_date datetime Data e hora em que o trabalho entrou na fila. Se o trabalho for executado diretamente, essa coluna será NULL.
start_execution_date datetime Data e hora para as quais a execução do trabalho foi programada.
last_executed_step_id int Identificação da última etapa de trabalho executada.
last_executed_step_

date
datetime Data e hora em que começou a execução da última etapa do trabalho.
stop_execution_date datetime Data e hora em que a execução do trabalho terminou.
job_history_id int Usado para identificar uma linha na tabela sysjobhistory .
next_scheduled_run_date datetime Próxima data e hora em que o trabalho está agendado para ser executado.

Exemplo

Este exemplo retornará o status de tempo de execução para todos os trabalhos do SQL Server Agent. Execute o Transact-SQL a seguir no 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); 

Confira também

dbo.sysjobhistory (Transact-SQL)