sp_help_job(Transact-SQL)
적용 대상: SQL Server
SQL Server 에이전트 SQL Server에서 자동화된 작업을 수행하는 데 사용하는 작업에 대한 정보를 반환합니다.
구문
sp_help_job
[ [ @job_id = ] 'job_id' ]
[ , [ @job_name = ] N'job_name' ]
[ , [ @job_aspect = ] 'job_aspect' ]
[ , [ @job_type = ] 'job_type' ]
[ , [ @owner_login_name = ] N'owner_login_name' ]
[ , [ @subsystem = ] N'subsystem' ]
[ , [ @category_name = ] N'category_name' ]
[ , [ @enabled = ] enabled ]
[ , [ @execution_status = ] execution_status ]
[ , [ @date_comparator = ] 'date_comparator' ]
[ , [ @date_created = ] date_created ]
[ , [ @date_last_modified = ] date_last_modified ]
[ , [ @description = ] N'description' ]
[ ; ]
인수
[ @job_id = ] 'job_id'
작업 ID 번호입니다. @job_id 기본값NULL
인 uniqueidentifier입니다.
특정 작업을 보려면 @job_id 또는 @job_name 지정해야 합니다. 모든 작업에 대한 정보를 반환하려면 @job_id 및 @job_name 모두 생략합니다.
[ @job_name = ] N'job_name'
작업의 이름입니다. @job_name sysname이며 기본값은 .입니다NULL
.
특정 작업을 보려면 @job_id 또는 @job_name 지정해야 합니다. 모든 작업에 대한 정보를 반환하려면 @job_id 및 @job_name 모두 생략합니다.
[ @job_aspect = ] 'job_aspect'
표시할 작업 특성입니다. @job_aspect varchar(9)이며 이러한 값 중 하나일 수 있습니다.
값 | 설명 |
---|---|
ALL |
작업 측면 정보 |
JOB |
작업 정보 |
SCHEDULES |
일정 정보입니다. |
STEPS |
작업 단계 정보 |
TARGETS |
대상 정보 |
[ @job_type = ] 'job_type'
보고서에 포함할 작업의 유형입니다.@job_type 기본값NULL
인 varchar(12)입니다. @job_type 수 LOCAL
있습니다.MULTI-SERVER
[ @owner_login_name = ] N'owner_login_name'
작업 소유자의 로그인 이름입니다. @owner_login_name sysname이며 기본값은 .입니다NULL
.
[ @subsystem = ] N'subsystem'
하위 시스템의 이름입니다. @subsystem 기본값NULL
인 nvarchar(40)입니다.
[ @category_name = ] N'category_name'
범주의 이름입니다. @category_name sysname이며 기본값은 .입니다NULL
.
[ @enabled = ] 사용
활성화된 작업 또는 비활성화된 작업에 대한 정보가 표시되는지 여부를 나타내는 숫자입니다. @enabled 기본값NULL
인 tinyint입니다.
1
는 활성화된 작업을 나타냅니다.0
는 비활성화된 작업을 나타냅니다.
[ @execution_status = ] execution_status
작업의 실행 상태입니다. @execution_status int이며 이러한 값 중 하나일 수 있습니다.
값 | 설명 |
---|---|
0 |
유휴 상태이거나 일시 중단되지 않은 작업만 반환합니다. |
1 |
실행. |
2 |
스레드를 기다리는 중입니다. |
3 |
재시도 사이입니다. |
4 |
게으른. |
5 |
일시 중단. |
7 |
완료 작업 수행 |
[ @date_comparator = ] 'date_comparator'
@date_created 및 @date_last_modified 비교에 사용할 비교 연산자입니다. @date_comparator char(1)이며 =
, <
또는 >
.
[ @date_created = ] date_created
작업을 만든 날짜입니다. @date_created datetime이며 기본값은 .입니다NULL
.
[ @date_last_modified = ] date_last_modified
작업이 마지막으로 수정된 날짜입니다. @date_last_modified 기본값NULL
인 datetime입니다.
[ @description = ] N'description'
작업에 대한 설명입니다. @description 기본값NULL
인 nvarchar(512)입니다. @description 패턴 일치를 위한 와일드카드 문자를 포함할 수 있습니다.
반환 코드 값
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 = Never1 = 작업이 성공하는 경우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 |
날짜/시간 | 작업을 만든 날짜입니다. |
date_modified |
날짜/시간 | 작업이 마지막으로 수정된 날짜입니다. |
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 | 현재 실행 상태:1 = 실행 중2 = 스레드 대기 중3 = 재시도 사이4 = 유휴 상태5 = 일시 중단됨6 = 사용되지 않음7 = PerformingCompletionActions |
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 | 이 4 경우 on_success_action 실행할 다음 단계를 나타냅니다. |
on_fail_action |
nvarchar(4000) | 단계가 실패할 경우 수행할 작업입니다. 값은 에 대한 on_success_action 값과 동일합니다. |
on_fail_step_id |
int | 이 4 경우 on_fail_action 실행할 다음 단계를 나타냅니다. |
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 = 한 번4 = 매일8 = 매주16 = 매월32 = 월별로, freq_interval 64 = SQL Server 에이전트 서비스가 시작될 때 실행됩니다. |
freq_interval |
int | 작업이 실행되는 요일입니다. 값은 의 값 freq_type 에 따라 달라집니다. 자세한 내용은 sp_add_schedule 참조 하세요. |
freq_subday_type |
int | 에 대한 단위입니다 freq_subday_interval . 자세한 내용은 sp_add_schedule 참조 하세요. |
freq_subday_interval |
int | freq_subday_type 작업의 각 실행 사이에 발생할 기간 수입니다. 자세한 내용은 sp_add_schedule 참조 하세요. |
freq_relative_interval |
int | 예약된 작업의 매월 발생 횟수 freq_interval 입니다. 자세한 내용은 sp_add_schedule 참조 하세요. |
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 |
날짜/시간 | 일정을 만든 날짜입니다. |
schedule_description |
nvarchar(4000) | 일정에 대한 영어 설명입니다(요청된 경우). |
next_run_date |
int | 다음 일정으로 인해 작업이 실행되도록 날짜 지정합니다. |
next_run_time |
int | 다음 일정으로 인해 작업이 실행되도록 하는 시간입니다. |
schedule_uid |
uniqueidentifier | 일정의 식별자입니다. |
job_count |
int | 이 일정을 참조하는 작업 수를 반환합니다. |
작업 대상 서버에 대한 결과 집합입니다.
열 이름 | 데이터 형식 | 설명 |
---|---|---|
server_id |
int | 대상 서버의 식별자입니다. |
server_name |
nvarchar(30) | 대상 서버의 컴퓨터 이름입니다. |
enlist_date |
날짜/시간 | 대상 서버가 마스터 서버에 참여한 날짜입니다. |
last_poll_date |
날짜/시간 | 대상 서버가 마스터 서버를 마지막으로 폴링한 날짜입니다. |
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) | 이 대상 서버에서 마지막으로 실행된 작업의 결과 메시지입니다. |
사용 권한
이 절차에 대한 사용 권한을 부여 EXECUTE
할 수 있지만 SQL Server 업그레이드 중에 이러한 권한이 재정의될 수 있습니다.
다른 사용자에게는 데이터베이스에서 다음 SQL Server 에이전트 고정 데이터베이스 역할 msdb
중 하나가 부여되어야 합니다.
- SQLAgentUserRole
- SQLAgentReaderRole
- SQLAgentOperatorRole
이러한 역할의 사용 권한에 대한 자세한 내용은 SQL Server 에이전트 고정 데이터베이스 역할을 참조하세요.
SQLAgentUserRole의 멤버는 자신이 소유한 작업만 볼 수 있습니다. sysadmin, SQLAgentReaderRole 및 SQLAgentOperatorRole의 멤버는 모든 로컬 및 다중 서버 작업을 볼 수 있습니다.
예제
A. 모든 작업에 대한 정보 나열
다음 예제에서는 매개 변수 없이 프로시저를 실행 sp_help_job
하여 현재 데이터베이스에 정의된 msdb
모든 작업에 대한 정보를 반환합니다.
USE msdb;
GO
EXEC dbo.sp_help_job;
GO
B. 특정 조건과 일치하는 작업에 대한 정보 나열
다음 예제에서는 작업이 사용하도록 설정되고 실행되는 위치가 françoisa
소유한 다중 서버 작업에 대한 작업 정보를 나열합니다.
USE msdb;
GO
EXEC dbo.sp_help_job
@job_type = N'MULTI-SERVER',
@owner_login_name = N'françoisa',
@enabled = 1,
@execution_status = 1;
GO
C. 작업에 대한 정보의 모든 측면 나열
다음 예제에서는 작업에 NightlyBackups
대한 정보의 모든 측면을 나열합니다.
USE msdb;
GO
EXEC dbo.sp_help_job
@job_name = N'NightlyBackups',
@job_aspect = N'ALL';
GO