sp_help_job(Transact-SQL)
적용 대상:SQL Server
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 기본값이 NULL인 uniqueidentifier입니다.
[ @job_name = ] 'job_name'
작업의 이름입니다. job_name sysname이며 기본값은 NULL입니다.
참고 항목
특정 작업을 보려면 job_id 또는 job_name 지정해야 합니다. 모든 작업에 대한 정보를 반환하려면 job_id 및 job_name 모두 생략합니다.
[ @job_aspect = ] 'job_aspect'
표시할 작업 특성입니다. job_aspect 기본값이 NULL인 varchar(9)이며 이러한 값 중 하나일 수 있습니다.
값 | 설명 |
---|---|
ALL | 작업 측면 정보 |
작업 | 작업 정보 |
일정 | 일정 정보입니다. |
단계 | 작업 단계 정보 |
대상 | 대상 정보 |
[ @job_type = ] 'job_type'
보고서에 포함할 작업의 유형입니다. job_type varchar(12)이며 기본값은 NULL입니다. job_type 로컬 또는 다중 서버일 수 있습니다.
[ @owner_login_name = ] 'login_name'
작업 소유자의 로그인 이름입니다. login_name sysname이며 기본값은 NULL입니다.
[ @subsystem = ] 'subsystem'
하위 시스템의 이름입니다. 하위 시스템은 nvarchar(40)이며 기본값은 NULL입니다.
[ @category_name = ] 'category'
범주의 이름입니다. 범주는 sysname이며 기본값은 NULL입니다.
[ @enabled = ] enabled
활성화된 작업 또는 비활성화된 작업에 대한 정보가 표시되는지 여부를 나타내는 숫자입니다. enabled는 tinyint이며 기본값은 NULL입니다. 1 은 활성화된 작업을 나타내고 0 은 비활성화된 작업을 나타냅니다.
[ @execution_status = ] status
작업의 실행 상태입니다. 상태는 기본값이 NULL인 int이며 이러한 값 중 하나일 수 있습니다.
값 | 설명 |
---|---|
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 날짜/시간이며 기본값은 NULL입니다.
[ @date_last_modified = ] date_modified
작업이 마지막으로 수정된 날짜입니다. date_modified 기본값이 NULL인 datetime입니다.
[ @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) | 작업이 시작된 서버의 이름입니다. |
이름 | sysname | 작업의 이름입니다. |
사용 | tinyint | 작업을 실행할 수 있는지 여부를 나타냅니다. |
description | nvarchar(512) | 작업 설명입니다. |
start_step_id | int | 실행을 시작해야 하는 작업 단계의 ID입니다. |
category | sysname | 작업 범주입니다. |
담당자 | sysname | 작업 소유자입니다. |
notify_level_eventlog | int | 알림 이벤트를 Microsoft Windows 애플리케이션 로그에 기록해야 하는 상황을 나타내는 비트 마스크 입니다. 다음 값 중 하나일 수 있습니다. 0 = Never 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 | 현재 실행 상태: 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 | 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 | 일정의 이름입니다(이 작업에만 고유). |
사용 | int | 일정이 활성 상태인지 여부(1) (0)입니다. |
freq_type | int | 작업을 실행할 시기를 나타내는 값입니다. 1 = 한 번 4 = 매일 8 = 매주 16 = 매월 32 = 월별로 freq_interval 64 = SQLServerAgent 서비스가 시작될 때 실행합니다. |
freq_interval | int | 작업이 실행되는 요일입니다. 값은 freq_type 값에 따라 달라집니다. 자세한 내용은 sp_add_schedule(Transact-SQL)를 참조하세요 . |
freq_subday_type | 정수 | 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 | 대상 서버의 식별자입니다. |
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 고정 서버 역할의 멤버는 이 저장 프로시저를 실행할 수 있습니다. 다른 사용자는 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
참고 항목
sp_add_job(Transact-SQL)
sp_delete_job(Transact-SQL)
sp_update_job(Transact-SQL)
시스템 저장 프로시저(Transact-SQL)
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기