Share via


sp_help_jobhistory(Transact-SQL)

적용 대상:SQL Server

다중 서버 관리의 서버에 대한 작업에 대한 정보를 제공합니다기본.

Transact-SQL 구문 표기 규칙

구문

sp_help_jobhistory
    [ [ @job_id = ] 'job_id' ]
    [ , [ @job_name = ] N'job_name' ]
    [ , [ @step_id = ] step_id ]
    [ , [ @sql_message_id = ] sql_message_id ]
    [ , [ @sql_severity = ] sql_severity ]
    [ , [ @start_run_date = ] start_run_date ]
    [ , [ @end_run_date = ] end_run_date ]
    [ , [ @start_run_time = ] start_run_time ]
    [ , [ @end_run_time = ] end_run_time ]
    [ , [ @minimum_run_duration = ] minimum_run_duration ]
    [ , [ @run_status = ] run_status ]
    [ , [ @minimum_retries = ] minimum_retries ]
    [ , [ @oldest_first = ] oldest_first ]
    [ , [ @server = ] N'server' ]
    [ , [ @mode = ] 'mode' ]
[ ; ]

인수

[ @job_id = ] 'job_id'

작업 ID 번호입니다. @job_id 기본값NULLuniqueidentifier입니다.

[ @job_name = ] N'job_name'

작업의 이름입니다. @job_name sysname이며 기본값은 .입니다NULL.

[ @step_id = ] step_id

단계 식별 번호입니다. @step_id 기본값NULL인 int입니다.

[ @sql_message_id = ] sql_message_id

작업을 실행할 때 SQL Server에서 반환한 오류 메시지의 ID입니다. @sql_message_id 기본값NULLint입니다.

[ @sql_severity = ] sql_severity

작업을 실행할 때 SQL Server에서 반환한 오류 메시지의 심각도 수준입니다. @sql_severity 기본값NULLint입니다.

[ @start_run_date = ] start_run_date

작업이 시작된 날짜입니다. @start_run_date int이며 기본값은 .입니다NULL. @start_run_date 4자 연도인 형식 yyyyMMddyyyy 으로 입력해야 하며, MM 2자 월 이름이고 dd 2자로 된 일 이름입니다.

[ @end_run_date = ] end_run_date

작업이 완료된 날짜입니다. @end_run_date 기본값NULLint입니다. @end_run_date 4자 연도인 형식 yyyyMMddyyyy 으로 입력해야 하며, MM 2자 월 이름이고 dd 2자로 된 일 이름입니다.

[ @start_run_time = ] start_run_time

작업이 시작된 시간입니다. @start_run_time int이며 기본값은 .입니다NULL. @start_run_time 형식으로 HHmmss입력해야 합니다. 여기서 HH 하루 중 두 문자로 된 시간은 하루 mm 중 2자 분이며 ss 하루 중 2자 초입니다.

[ @end_run_time = ] end_run_time

작업이 실행을 완료한 시간입니다. @end_run_time 기본값NULL인 int입니다. @end_run_time 형식으로 HHmmss입력해야 합니다. 여기서 HH 하루 중 두 문자로 된 시간은 하루 mm 중 2자 분이며 ss 하루 중 2자 초입니다.

[ @minimum_run_duration = ] minimum_run_duration

작업 완료에 대한 최소 시간입니다. @minimum_run_duration 기본값NULL인 int입니다. @minimum_run_duration 형식으로 HHmmss입력해야 합니다. 여기서 HH 하루 중 두 문자로 된 시간은 하루 mm 중 2자 분이며 ss 하루 중 2자 초입니다.

[ @run_status = ] run_상태

작업의 실행 상태.@run_상태 int이며 이러한 값 중 하나일 수 있습니다.

설명
0 실패함
1 성공함
2 다시 시도(단계에만 적용됨)
3 Canceled
4 진행 중인 메시지
5 Unknown

[ @minimum_retries = ] minimum_retries

작업 실행을 다시 시도해야 하는 최소 횟수입니다. @minimum_retries 기본값NULL인 int입니다.

[ @oldest_first = ] oldest_first

출력을 가장 오래된 작업과 함께 먼저 표시할지 여부입니다. @oldest_first 기본값0int입니다.

  • 0 는 먼저 최신 작업을 표시합니다.
  • 1 는 가장 오래된 작업을 먼저 표시합니다.

[ @server = ] N'server'

작업이 수행된 서버의 이름입니다. @server sysname이며 기본값은 .입니다NULL.

[ @mode = ] 'mode'

SQL Server가 결과 집합(FULL)의 모든 열을 인쇄할지 아니면 열의 요약(SUMMARY)을 인쇄할지를 지정합니다. @mode 기본값SUMMARY인 varchar(7)입니다.

반환 코드 값

0 (성공) 또는 1 (실패).

결과 집합

실제 열 목록은 @mode에 따라 달라집니다. 가장 포괄적인 열 집합은 다음 표에 나와 있으며 @mode 때 반환됩니다FULL.

열 이름 데이터 형식 설명
instance_id int 기록 항목 ID 번호입니다.
job_id uniqueidentifier 작업 ID 번호입니다.
job_name sysname 작업 이름입니다.
step_id int 단계 식별 번호(0 작업 기록의 경우)입니다.
step_name sysname 단계 이름(NULL 작업 기록의 경우)입니다.
sql_message_id int Transact-SQL 단계의 경우 명령을 실행하는 동안 발생한 가장 최근의 Transact-SQL 오류 번호입니다.
sql_severity int Transact-SQL 단계의 경우 명령을 실행하는 동안 발생한 가장 높은 Transact-SQL 오류 심각도입니다.
message nvarchar(1024) 작업 또는 단계 기록 메시지입니다.
run_status int 작업 또는 단계의 결과입니다.
run_date int 작업 또는 단계가 실행되기 시작한 날짜입니다.
run_time int 작업 또는 단계가 실행을 시작한 시간입니다.
run_duration int 작업 실행 또는 단계 HHmmss 형식의 경과된 시간입니다.
operator_emailed nvarchar(20) 이 작업과 관련하여 전자 메일로 전송된 운영자입니다 NULL (단계 기록용).
operator_netsent nvarchar(20) 이 작업에 대한 네트워크 메시지를 보낸 운영자입니다 NULL (단계 기록용).
operator_paged nvarchar(20) 이 작업에 대해 페이징된 연산자입니다 NULL (단계 기록용).
retries_attempted int 단계를 다시 시도하는 횟수입니다. 작업 기록의 경우에는 항상 0입니다.
server nvarchar(30) 단계 또는 작업이 실행되는 서버를 지정합니다. 항상 (local)입니다.

설명

sp_help_jobhistory 는 지정된 예약된 작업의 기록이 포함된 보고서를 반환합니다. 매개 변수가 지정되지 않은 경우 보고서에는 예약된 모든 작업에 대한 기록이 포함됩니다.

사용 권한

이 저장 프로시저는 db_owner 역할이 소유합니다. 모든 사용자에 대한 사용 권한을 부여 EXECUTE 할 수 있지만 SQL Server 업그레이드 중에 이러한 권한이 재정의될 수 있습니다.

다른 사용자에게는 데이터베이스에서 다음 SQL Server 에이전트 고정 데이터베이스 역할 msdb 중 하나가 부여되어야 합니다.

  • SQLAgentUserRole
  • SQLAgentReaderRole
  • SQLAgentOperatorRole

이러한 역할의 사용 권한에 대한 자세한 내용은 SQL Server 에이전트 고정 데이터베이스 역할을 참조하세요.

SQLAgentUserRole 데이터베이스 역할의 멤버는 자신이 소유한 작업의 기록만 볼 수 있습니다.

예제

A. 작업에 대한 모든 작업 정보 나열

다음 예제에서는 작업에 대한 모든 작업 정보를 나열합니다 NightlyBackups .

USE msdb;
GO

EXEC dbo.sp_help_jobhistory
    @job_name = N'NightlyBackups';
GO

B. 특정 조건과 일치하는 작업에 대한 정보 나열

다음 예제에서는 오류 메시지(사용자 정의 오류 메시지 50100 ) 및 심각도 20를 사용하여 실패한 작업 및 실패한 작업 단계에 대한 모든 열과 모든 작업 정보를 출력합니다.

USE msdb;
GO

EXEC dbo.sp_help_jobhistory
    @sql_message_id = 50100,
    @sql_severity = 20,
    @run_status = 0,
    @mode = N'FULL';
GO