다음을 통해 공유


sp_help_jobhistory(Transact-SQL)

다중 서버 관리 도메인 내의 서버에 관한 작업 관련 정보를 제공합니다.

항목 링크 아이콘Transact-SQL 구문 표기 규칙

구문

sp_help_jobhistory [ [ @job_id = ] job_id ] 
     [ , [ @job_name = ] '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 = ] 'server' ] 
     [ , [ @mode = ] 'mode' ]

인수

  • [ @job_id= ] job_id
    작업 ID입니다. job_id는 uniqueidentifier이며 기본값은 NULL입니다.

  • [ @job_name= ] 'job_name'
    작업 이름입니다. job_name은 sysname이며 기본값은 NULL입니다.

  • [ @step_id= ] step_id
    단계 ID입니다. step_id는 int이며 기본값은 NULL입니다.

  • [ @sql_message_id= ] sql_message_id
    작업을 실행할 때 Microsoft SQL Server에서 반환하는 오류 메시지의 ID입니다. sql_message_id는 int이며 기본값은 NULL입니다.

  • [ @sql_severity= ] sql_severity
    작업을 실행할 때 Microsoft SQL Server에서 반환하는 오류 메시지의 심각도입니다. sql_severity는 int이며 기본값은 NULL입니다.

  • [ @start_run_date= ] start_run_date
    작업이 시작된 날짜입니다. start_run_date는 int이며 기본값은 NULL입니다. start_run_date는 반드시 YYYYMMDD 형식으로 입력해야 합니다. 여기서 YYYY는 4자리 연도, MM은 두 자리 월, DD는 두 자리 일입니다.

  • [ @end_run_date= ] end_run_date
    작업이 완료된 날짜입니다. end_run_date는 int이며 기본값은 NULL입니다. end_run_date는 반드시 YYYYMMDD 형식으로 입력해야 합니다. 여기서 YYYY는 4자리 연도, MM은 두 자리 월, DD는 두 자리 일입니다.

  • [ @start_run_time= ] start_run_time
    작업이 시작된 시간입니다. start_run_time은 int이며 기본값은 NULL입니다. start_run_time은 반드시 HHMMSS 형식으로 입력해야 합니다. 여기서 HH는 두 자리 시간, MM은 두 자리 분, SS는 두 자리 초입니다.

  • [ @end_run_time= ] end_run_time
    작업 실행이 완료된 시간입니다. end_run_time은 int이며 기본값은 NULL입니다. end_run_time은 반드시 HHMMSS 형식으로 입력해야 합니다. 여기서 HH는 두 자리 시간, MM은 두 자리 분, SS는 두 자리 초입니다.

  • [ @minimum_run_duration= ] minimum_run_duration
    작업 완료에 필요한 최소 시간의 길이입니다. minimum_run_duration은 int이며 기본값은 NULL입니다. minimum_run_duration은 반드시 HHMMSS 형식으로 입력해야 합니다. 여기서 HH는 두 자리 시간, MM은 두 자리 분, SS는 두 자리 초입니다.

  • [ @run_status= ] run_status
    작업의 실행 상태입니다. run_status는 int이고 기본값은 NULL이며 다음 값 중 하나를 사용할 수 있습니다.

    설명

    0

    실패

    1

    성공

    2

    다시 시도(단계에만 적용됨)

    3

    취소

    4

    메시지 처리 중

    5

    알 수 없음

  • [ @minimum_retries= ] minimum_retries
    작업 실행을 다시 시도해야 하는 최소 횟수입니다. minimum_retries는 int이며 기본값은 NULL입니다.

  • [ @oldest_first= ] oldest_first
    가장 오래된 작업에 대한 결과를 먼저 표시할지 여부입니다. oldest_first는 int이며 기본값은 최신 작업을 먼저 표시하는 0입니다. 1은 가장 오래된 작업을 먼저 제시합니다.

  • [ @server= ] 'server'
    작업이 수행된 서버의 이름입니다. server는 nvarchar(30)이며 기본값은 NULL입니다.

  • [ @mode= ] 'mode'
    SQL Server가 결과 집합에 모든 열을 출력할지(FULL) 아니면 열의 요약을 출력할지 여부입니다. mode는 varchar(7)이며 기본값은 SUMMARY입니다.

반환 코드 값

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

결과 집합

실제 열 목록은 mode 값에 따라 달라집니다. 가장 포괄적인 열 집합은 다음과 같으며 mode가 FULL일 때 반환됩니다.

열 이름

데이터 형식

설명

instance_id

int

기록 항목 ID입니다.

job_id

uniqueidentifier

작업 ID입니다.

job_name

sysname

작업 이름입니다.

step_id

int

단계 ID입니다. 작업 기록의 경우 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는 지정한 예정된 작업의 기록에 관한 보고서를 반환합니다. 매개 변수를 지정하지 않은 경우에는 보고서에 예정된 모든 작업에 관한 기록이 포함됩니다.

사용 권한

기본적으로 sysadmin 고정 서버 역할의 멤버는 이 저장 프로시저를 실행할 수 있습니다. 다른 사용자는 msdb 데이터베이스의 다음 SQL Server 에이전트 고정 데이터베이스 역할 중 하나를 부여 받아야 합니다.

  • SQLAgentUserRole

  • SQLAgentReaderRole

  • SQLAgentOperatorRole

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

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

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

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

USE msdb ;
GO

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

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

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

USE msdb
GO

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