다음을 통해 공유


dbo.sysjobactivity(Transact-SQL)

적용 대상: SQL Server

현재 SQL Server 에이전트 작업 활동 및 상태를 기록합니다. 이 테이블은 msdb 데이터베이스에 저장됩니다.

열 이름 데이터 형식 설명
session_id int msdb 데이터베이스의 syssessions 테이블에 저장된 세션의 ID입니다.
job_id uniqueidentifier 작업의 ID입니다.
run_requested_date 날짜/시간 작업 실행을 요청한 날짜와 시간입니다.
run_requested_source sysname(nvarchar(128)) 누가 작업을 실행하도록 요청했습니다.

1 = SOURCE_SCHEDULER

2 = SOURCE_ALERTER

3 = SOURCE_BOOT

4 = SOURCE_USER

6 = SOURCE_ON_IDLE_SCHEDULE
queued_date 날짜/시간 이 작업이 대기한 날짜와 시간입니다. 작업이 직접 실행되면 이 열은 NULL입니다.
start_execution_date 날짜/시간 날짜 및 시간 작업이 실행되도록 예약되었습니다.
last_executed_step_id int 실행된 마지막 작업 단계의 ID입니다.
last_executed_step_

date
datetime 마지막 작업 단계가 실행되기 시작한 날짜 및 시간입니다.
stop_execution_date 날짜/시간 작업 실행을 완료한 날짜 및 시간입니다.
job_history_id int sysjobhistory 테이블의 행을 식별하는 데 사용됩니다.
next_scheduled_run_date 날짜/시간 작업이 실행되도록 예약된 다음 날짜 및 시간입니다.

예시

이 예제에서는 모든 SQL Server 에이전트 작업에 대한 런타임 상태를 반환합니다. SQL Server Management Studio에서 다음 TRANSACT-SQL을 실행합니다.

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

참고 항목

dbo.sysjobhistory(Transact-SQL)