sp_help_jobhistory(Transact-SQL)
적용 대상: SQL Server
다중 서버 관리 도메인의 서버에 대한 작업에 대한 정보를 제공합니다.
구문
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 기본값NULL
인 uniqueidentifier입니다.
[ @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 기본값NULL
인 int입니다.
[ @sql_severity = ] sql_severity
작업을 실행할 때 SQL Server에서 반환한 오류 메시지의 심각도 수준입니다. @sql_severity 기본값NULL
인 int입니다.
[ @start_run_date = ] start_run_date
작업이 시작된 날짜입니다. @start_run_date int이며 기본값은 .입니다NULL
. @start_run_date 4자 연도인 형식 yyyyMMdd
yyyy
으로 입력해야 하며, MM
2자 월 이름이고 dd
2자로 된 일 이름입니다.
[ @end_run_date = ] end_run_date
작업이 완료된 날짜입니다. @end_run_date 기본값NULL
인 int입니다. @end_run_date 4자 연도인 형식 yyyyMMdd
yyyy
으로 입력해야 하며, 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_status
작업의 실행 상태입니다. @run_status int이며 이러한 값 중 하나일 수 있습니다.
값 | 설명 |
---|---|
0 |
실패함 |
1 |
성공함 |
2 |
다시 시도(단계에만 적용됨) |
3 |
취소됨 |
4 |
진행 중인 메시지 |
5 |
Unknown |
[ @minimum_retries = ] minimum_retries
작업 실행을 다시 시도해야 하는 최소 횟수입니다. @minimum_retries 기본값NULL
인 int입니다.
[ @oldest_first = ] oldest_first
출력을 가장 오래된 작업과 함께 먼저 표시할지 여부입니다. @oldest_first 기본값0
인 int입니다.
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
는 지정된 예약된 작업의 기록이 포함된 보고서를 반환합니다. 매개 변수가 지정되지 않은 경우 보고서에는 예약된 모든 작업에 대한 기록이 포함됩니다.
사용 권한
이 절차에 대한 사용 권한을 부여 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