sp_help_job(Transact-SQL)
SQL Server 에이전트가 SQL Server에서 자동화된 작업을 수행하는 데 사용하는 작업에 대한 정보를 반환합니다.
구문
sp_help_job { [ @job_id = ] job_id | [ @job_name = ] 'job_name' }
[ , [ @job_aspect = ] 'job_aspect' ]
[ , [ @job_type = ] 'job_type' ]
[ , [ @owner_login_name = ] 'login_name' ]
[ , [ @subsystem = ] 'subsystem' ]
[ , [ @category_name = ] 'category' ]
[ , [ @enabled = ] enabled ]
[ , [ @execution_status = ] status ]
[ , [ @date_comparator = ] 'date_comparison' ]
[ , [ @date_created = ] date_created ]
[ , [ @date_last_modified = ] date_modified ]
[ , [ @description = ] 'description_pattern' ]
인수
- [ @job_id =] job_id
작업 ID입니다. job_id는 uniqueidentifier이며 기본값은 NULL입니다.
[ @job_name =] 'job_name'
작업의 이름입니다. job_name은 sysname이며 기본값은 NULL입니다.[!참고] job_id 또는 job_name 중 하나를 지정해야 하며 둘 다를 지정할 수는 없습니다.
[ @job_aspect =] 'job_aspect'
표시할 작업 특성입니다. job_aspect는 **varchar(9)**이며 기본값은 NULL이지만 다음 값 중 하나일 수 있습니다.값 설명 ALL
작업 항목 정보입니다.
JOB
작업 정보입니다.
SCHEDULES
일정 정보입니다.
STEPS
작업 단계 정보입니다.
TARGETS
대상 정보입니다.
- [ @job_type =] 'job_type'
보고서에 포함할 작업 유형입니다. job_type은 **varchar(12)**이며 기본값은 NULL입니다. job_type은 LOCAL 또는 MULTI-SERVER일 수 있습니다.
- [ @owner_login_name =] 'login_name'
작업 소유자의 로그인 이름입니다. login_name은 sysname이며 기본값은 NULL입니다.
- [ @subsystem =] 'subsystem'
하위 시스템의 이름입니다. subsystem은 **nvarchar(40)**이며 기본값은 NULL입니다.
- [ @category_name =] 'category'
범주의 이름입니다. category는 sysname이며 기본값은 NULL입니다.
- [ @enabled =] enabled
사용하는 작업 또는 사용하지 않는 작업에 대해 정보를 표시할지 여부를 나타내는 번호입니다. enabled는 tinyint이며 기본값은 NULL입니다. 1은 사용하는 작업을, 0은 사용하지 않는 작업을 나타냅니다.
[ @execution_status =] status
작업의 실행 상태입니다. status는 int이며 기본값은 NULL이지만 다음 값 중 하나일 수 있습니다.값 설명 0
유휴 또는 일시 중지 상태가 아닌 작업만 반환합니다.
1
실행 중입니다.
2
스레드 대기 중입니다.
3
재시도 중입니다.
4
유휴 상태입니다.
5
일시 중지 상태입니다.
7
작업을 완전히 수행하였습니다.
- [ @date_comparator =] 'date_comparison'
date_created와 date_modified 비교에 사용할 비교 연산자입니다. date_comparison은 **char(1)**이며 =, < 또는 >일 수 있습니다.
- [ @date_created =] date_created
작업이 생성된 날짜입니다. date_created는 datetime이며 기본값은 NULL입니다.
- [ @date_last_modified =] date_modified
작업이 마지막으로 수정된 날짜입니다. date_modified는 datetime이며 기본값은 NULL입니다.
- [ @description =] 'description_pattern'
작업에 대한 설명입니다. description_pattern은 **nvarchar(512)**이며 기본값은 NULL입니다. description_pattern은 패턴 일치를 위해 SQL Server 와일드카드 문자를 포함할 수 있습니다.
반환 코드 값
0(성공) 또는 1(실패)
결과 집합
인수를 지정하지 않을 경우 sp_help_job은 다음 결과 집합을 반환합니다.
열 이름 | 데이터 형식 | 설명 |
---|---|---|
job_id |
uniqueidentifier |
작업의 고유 ID입니다. |
originating_server |
nvarchar(30) |
작업을 가져온 서버의 이름입니다. |
name |
sysname |
작업의 이름입니다. |
enabled |
tinyint |
작업을 실행할 수 있는지를 표시합니다. |
description |
nvarchar(512) |
작업에 대한 설명입니다. |
start_step_id |
int |
실행을 시작해야 하는 작업 단계의 ID입니다. |
category |
sysname |
작업 범주입니다. |
owner |
sysname |
작업 소유자입니다. |
notify_level_eventlog |
int |
Microsoft Windows 응용 프로그램 로그에 알림 이벤트를 기록해야 하는 상황을 나타내는 비트 마스크입니다. 다음 값 중 하나를 사용할 수 있습니다. 0 = 안 함 1 = 작업이 성공할 경우 2 = 작업이 실패할 경우 3 = 작업이 완료될 때마다(작업 결과와 무관) |
notify_level_email |
int |
작업 완료 시 알림 전자 메일을 보내야 하는 상황을 나타내는 비트 마스크입니다. 가능한 값은 notify_level_eventlog와 같습니다 |
notify_level_netsend |
int |
작업 완료 시 네트워크 메시지를 보내야 하는 상황을 나타내는 비트 마스크입니다. 가능한 값은 notify_level_eventlog와 같습니다 |
notify_level_page |
int |
작업 완료 시 페이지를 보내야 하는 상황을 나타내는 비트 마스크입니다. 가능한 값은 notify_level_eventlog와 같습니다 |
notify_email_operator |
sysname |
정보를 알릴 운영자의 전자 메일 이름입니다. |
notify_netsend_operator |
sysname |
네트워크 메시지를 전달할 때 사용하는 컴퓨터 또는 사용자의 이름입니다. |
notify_page_operator |
sysname |
네트워크 메시지를 전달할 때 사용하는 컴퓨터 또는 사용자의 이름입니다. |
delete_level |
int |
작업 완료 시 작업을 삭제해야 하는 상황을 나타내는 비트 마스크입니다. 가능한 값은 notify_level_eventlog와 같습니다. |
date_created |
datetime |
작업을 만든 날짜입니다. |
date_modified |
datetime |
작업을 마지막으로 수정한 날짜입니다. |
version_number |
int |
작업의 버전입니다. 작업이 수정될 때마다 자동으로 업데이트됩니다. |
last_run_date |
int |
작업이 마지막으로 실행을 시작한 날짜입니다. |
last_run_time |
int |
작업이 마지막으로 실행을 시작한 시간입니다. |
last_run_outcome |
int |
작업이 마지막으로 실행되었을 때의 결과입니다. 0 = 실패 1 = 성공 3 = 취소됨 5 = 알 수 없음 |
next_run_date |
int |
다음 작업 실행 일정의 날짜입니다. |
next_run_time |
int |
다음 작업 실행 일정의 시간입니다. |
next_run_schedule_id |
int |
다음 실행 일정의 ID입니다. |
current_execution_status |
int |
현재 실행 상태입니다. |
current_execution_step |
sysname |
작업의 현재 실행 단계입니다. |
current_retry_attempt |
int |
작업이 실행 중이며 단계가 다시 시도된 경우의 현재 재시도입니다. |
has_step |
int |
작업이 갖고 있는 단계 수입니다. |
has_schedule |
int |
작업이 갖고 있는 작업 일정 수입니다. |
has_target |
int |
작업이 갖고 있는 대상 서버 수입니다. |
type |
int |
작업의 유형입니다. 1 = 로컬 작업 2 = 다중 서버 작업 0 = 작업에 대상 서버가 없음 |
job_id 또는 job_name을 지정하면 sp_help_job에서는 작업 단계, 작업 일정 및 작업 대상 서버에 대한 추가 결과 집합을 반환합니다.
다음은 작업 단계에 관한 결과 집합입니다.
열 이름 | 데이터 형식 | 설명 |
---|---|---|
step_id |
int |
해당 작업에 관한 단계의 고유 ID입니다. |
step_name |
sysname |
단계의 이름입니다. |
subsystem |
nvarchar(40) |
단계 명령을 실행할 하위 시스템입니다. |
command |
nvarchar(3200) |
실행할 명령입니다. |
flags |
nvarchar(4000) |
단계 동작을 제어하는 값의 비트 마스크입니다. |
cmdexec_success_code |
int |
CmdExec 단계의 경우 성공한 명령의 프로세스 종료 코드입니다. |
on_success_action |
nvarchar(4000) |
단계가 성공할 경우 수행되는 작업입니다. 1 = 성공으로 종료 2 = 실패로 종료 3 = 다음 단계로 이동 4 = 단계로 이동 |
on_success_step_id |
int |
on_success_action이 4인 경우 실행할 다음 단계를 표시합니다. |
on_fail_action |
nvarchar(4000) |
단계가 실패한 경우에 수행할 작업입니다. 값은 on_success_action의 경우와 같습니다. |
on_fail_step_id |
int |
on_fail_action이 4인 경우 실행할 다음 단계를 표시합니다. |
server |
sysname |
예약되어 있습니다. |
database_name |
sysname |
Transact-SQL 단계의 경우 명령이 실행될 데이터베이스입니다. |
database_user_name |
sysname |
Transact-SQL 단계의 경우 명령이 실행되는 데이터베이스 사용자 컨텍스트입니다. |
retry_attempts |
int |
단계가 성공하지 못한 경우에 해당 단계를 실패로 간주하기 전에 명령을 재시도할 최대 횟수입니다. |
retry_interval |
int |
재시도 간의 간격(분)입니다. |
os_run_priority |
varchar(4000) |
예약되어 있습니다. |
output_file_name |
varchar(200) |
명령 출력을 기록할 파일입니다. Transact-SQL 및 CmdExec 단계에만 적용됩니다. |
last_run_outcome |
int |
단계가 마지막으로 실행되었을 때의 결과입니다. 0 = 실패 1 = 성공 3 = 취소됨 5 = 알 수 없음 |
last_run_duration |
int |
단계를 마지막으로 실행했을 때의 기간(초)입니다. |
last_run_retries |
int |
단계를 마지막으로 실행했을 때 명령을 재시도할 횟수입니다. |
last_run_date |
int |
단계가 마지막으로 실행을 시작했을 때의 날짜입니다. |
last_run_time |
int |
단계가 마지막으로 실행을 시작했을 때의 시간입니다. |
proxy_id |
int |
작업 단계에 대한 프록시입니다. |
다음은 작업 일정에 관한 결과 집합입니다.
열 이름 | 데이터 형식 | 설명 |
---|---|---|
schedule_id |
int |
모든 작업에서 고유한 일정의 ID입니다. |
schedule_name |
sysname |
해당 작업에 대해서만 고유한 일정의 이름입니다. |
enabled |
int |
일정이 활성(1)인지 아닌지(0)를 나타냅니다. |
freq_type |
int |
작업을 실행할 때를 표시하는 값입니다. 1 = 1회 4 = 매일 8 = 매주 16 = 매월 32 = 매월(freq_interval에 상대적임) 64 = SQLServerAgent 서비스를 시작할 때 실행 |
freq_interval |
int |
작업이 실행되는 요일입니다. 값은 freq_type의 값에 따라 달라집니다. 자세한 내용은 sp_add_schedule(Transact-SQL)을 참조하십시오. |
freq_subday_type |
Int |
freq_subday_interval의 단위입니다. 자세한 내용은 sp_add_schedule(Transact-SQL)을 참조하십시오. |
freq_subday_interval |
int |
작업 실행 사이에 발생하는 freq_subday_type 기간의 개수입니다. 자세한 내용은 sp_add_schedule(Transact-SQL)을 참조하십시오. |
freq_relative_interval |
int |
매월 예약된 작업에서 freq_interval의 발생 빈도입니다. 자세한 내용은 sp_add_schedule(Transact-SQL)을 참조하십시오. |
freq_recurrence_factor |
int |
작업의 예정된 실행 간의 개월 수입니다. |
active_start_date |
int |
작업 실행을 시작할 날짜입니다. |
active_end_date |
int |
작업 실행을 종료할 날짜입니다. |
active_start_time |
int |
active_start_date에서 작업 실행을 시작할 시간입니다. |
active_end_time |
int |
active_end_date에서 작업 실행을 종료할 시간입니다. |
date_created |
datetime |
일정을 만든 날짜입니다. |
schedule_description |
nvarchar(4000) |
일정에 관한 영어 설명입니다(요청된 경우). |
next_run_date |
int |
일정이 다음에 작업을 실행할 날짜입니다. |
next_run_time |
int |
일정이 다음에 작업을 실행할 시간입니다. |
schedule_uid |
uniqueidentifier |
일정에 대한 식별자입니다. |
job_count |
int |
이 일정을 참조하는 작업 수를 반환합니다. |
다음은 작업 대상 서버의 결과 집합입니다.
열 이름 | 데이터 형식 | 설명 |
---|---|---|
server_id |
int |
대상 서버의 ID입니다. |
server_name |
nvarchar(30) |
대상 서버의 컴퓨터 이름입니다. |
enlist_date |
datetime |
대상 서버가 마스터 서버에 참여한 날짜입니다. |
last_poll_date |
datetime |
대상 서버가 마지막으로 마스터 서버를 폴링한 날짜입니다. |
last_run_date |
int |
해당 대상 서버에서 작업이 마지막으로 실행을 시작한 날짜입니다. |
last_run_time |
int |
해당 대상 서버에서 작업이 마지막으로 실행을 시작한 시간입니다. |
last_run_duration |
int |
해당 서버에서 작업이 마지막으로 실행되었을 때의 기간입니다. |
last_run_outcome |
tinyint |
해당 서버에서 작업이 마지막으로 실행되었을 때의 결과입니다. 0 = 실패 1 = 성공 3 = 취소됨 5 = 알 수 없음 |
last_outcome_message |
nvarchar(1024) |
해당 대상 서버에서 작업이 마지막으로 실행되었을 때의 결과 메시지입니다. |
사용 권한
기본적으로 sysadmin 고정 서버 역할의 멤버는 이 저장 프로시저를 실행할 수 있습니다. 다른 사용자는 msdb 데이터베이스의 다음 SQL Server 에이전트 고정 데이터베이스 역할 중 하나를 부여 받아야 합니다.
- SQLAgentUserRole
- SQLAgentReaderRole
- SQLAgentOperatorRole
이러한 역할의 사용 권한에 대한 자세한 내용은 SQL Server 에이전트 고정 데이터베이스 역할을 참조하십시오.
SQLAgentUserRole의 멤버는 각자 소유한 작업만 볼 수 있습니다. sysadmin, SQLAgentReaderRole 및 SQLAgentOperatorRole의 멤버는 모든 로컬 및 다중 서버 작업을 볼 수 있습니다.
예
1. 모든 작업에 관한 정보 나열
다음 예에서는 매개 변수 없이 sp_help_job
프로시저를 실행하여 msdb
데이터베이스에 현재 정의되어 있는 모든 작업에 대한 정보를 반환합니다.
USE msdb ;
GO
EXEC dbo.sp_help_job ;
GO
2. 특정 조건에 맞는 작업 정보 나열
다음 예에서는 작업이 사용되고 실행되고 있는 fran?isa
소유의 다중 서버 작업에 대한 정보를 나열합니다.
USE msdb ;
GO
EXEC dbo.sp_help_job
@job_type = N'MULTI-SERVER',
@owner_login_name = N'fran?isa',
@enabled = 1,
@execution_status = 1 ;
GO
3. 작업에 대한 모든 정보 나열
다음 예에서는 NightlyBackups
작업에 대한 모든 측면의 정보를 나열합니다.
USE msdb ;
GO
EXEC dbo.sp_help_job
@job_name = N'NightlyBackups',
@job_aspect = N'ALL' ;
GO
참고 항목
참조
sp_add_job(Transact-SQL)
sp_delete_job(Transact-SQL)
sp_update_job(Transact-SQL)
시스템 저장 프로시저(Transact-SQL)