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