다음을 통해 공유


sp_help_job(Transact-SQL)

적용 대상: SQL Server

SQL Server 에이전트 SQL Server에서 자동화된 작업을 수행하는 데 사용하는 작업에 대한 정보를 반환합니다.

Transact-SQL 구문 표기 규칙

구문

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 기본값NULLuniqueidentifier입니다.

특정 작업을 보려면 @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 기본값NULLtinyint입니다.

  • 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 기본값NULLdatetime입니다.

[ @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 = 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 날짜/시간 작업을 만든 날짜입니다.
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, SQLAgentReaderRoleSQLAgentOperatorRole멤버는 모든 로컬 및 다중 서버 작업을 볼 수 있습니다.

예제

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