sp_add_schedule(Transact-SQL)
여러 작업에서 사용할 수 있는 일정을 만듭니다.
구문
sp_add_schedule [ @schedule_name = ] 'schedule_name'
[ , [ @enabled = ] enabled ]
[ , [ @freq_type = ] freq_type ]
[ , [ @freq_interval = ] freq_interval ]
[ , [ @freq_subday_type = ] freq_subday_type ]
[ , [ @freq_subday_interval = ] freq_subday_interval ]
[ , [ @freq_relative_interval = ] freq_relative_interval ]
[ , [ @freq_recurrence_factor = ] freq_recurrence_factor ]
[ , [ @active_start_date = ] active_start_date ]
[ , [ @active_end_date = ] active_end_date ]
[ , [ @active_start_time = ] active_start_time ]
[ , [ @active_end_time = ] active_end_time ]
[ , [ @owner_login_name = ] 'owner_login_name' ]
[ , [ @schedule_uid = ] schedule_uid OUTPUT ]
[ , [ @schedule_id = ] schedule_id OUTPUT ]
[ , [ @originating_server = ] server_name ] /* internal */
인수
[ @schedule_name = ] 'schedule_name'
일정의 이름입니다. schedule_name은 sysname이며 기본값은 없습니다.[ @enabled = ] enabled
일정의 현재 상태를 나타냅니다. enabled는 tinyint이며 기본값은 1(사용)입니다. 0이 지정되어 있는 경우에는 일정을 사용할 수 없습니다. 일정을 사용할 수 없는 경우 이 일정에 따라 어떠한 작업도 실행되지 않습니다.[ @freq_type = ] freq_type
작업이 실행될 시기를 나타내는 값입니다. freq_type은 int이고 기본값은 0이며 다음 값 중 하나를 사용할 수 있습니다.값
설명
1
한 번
4
매일
8
매주
16
매월
32
매월(freq_interval에 상대적임)
64
SQLServerAgent 서비스를 시작할 때 실행
128
컴퓨터가 유휴 상태일 때 실행
[ @freq_interval = ] freq_interval
작업이 실행되는 날짜입니다. freq_interval은 int이고 기본값은 1이며 freq_type의 값에 따라 달라집니다.freq_type의 값
freq_interval에 미치는 영향
1(한 번)
freq_interval이 사용되지 않습니다.
4(매일)
매 freq_interval일
8(매주)
freq_interval은 다음 중 하나 이상이 될 수 있습니다. 이 경우 OR 논리 연산자와 함께 사용할 수 있습니다.
1 = 일요일
2 = 월요일
4 = 화요일
8 = 수요일
16 = 목요일
32 = 금요일
64 = 토요일
16(매월)
월 중 freq_interval일
32(매월 상대적)
freq_interval은 다음 중 하나일 수 있습니다.
1 = 일요일
2 = 월요일
3 = 화요일
4 = 수요일
5 = 목요일
6 = 금요일
7 = 토요일
8 = 일
9 = 평일
10 = 주말
64(SQLServerAgent 서비스를 시작할 때)
freq_interval이 사용되지 않습니다.
128
freq_interval이 사용되지 않습니다.
[ @freq_subday_type = ] freq_subday_type
freq_subday_interval에 대한 단위를 지정합니다. freq_subday_type은 int이며 기본값은 0이지만 다음 값 중 하나일 수 있습니다.값
설명(단위)
0x1
지정된 시간
0x2
초
0x4
분
0x8
시
[ @freq_subday_interval = ] freq_subday_interval
각 작업 실행 간에 발생할 freq_subday_type 기간의 일 수입니다. freq_subday_interval은 int이며 기본값은 0입니다. freq_subday_type이 1인 경우 freq_subday_interval은 무시됩니다. 참고: 간격은 10초보다 길어야 합니다.[ @freq_relative_interval = ] freq_relative_interval
freq_interval이 32(매월 상대적)인 경우 매월 freq_interval 기간의 작업 발생 횟수입니다. freq_relative_interval은 int이고 기본값은 0이며 다음 값 중 하나를 사용할 수 있습니다. freq_type이 32가 아닌 경우 freq_relative_interval은 무시됩니다.값
설명(단위)
1
첫째
2
둘째
4
셋째
8
넷째
16
마지막
[ @freq_recurrence_factor = ] freq_recurrence_factor
예약된 작업 실행 간에 발생하는 주 또는 월의 수입니다. freq_recurrence_factor는 freq_type이 8, 16 또는 32인 경우에만 사용됩니다. freq_recurrence_factor는 int이며 기본값은 0입니다.[ @active_start_date = ] active_start_date
작업 실행을 시작할 수 있는 날짜입니다. active_start_date는 int이며 기본값은 오늘 날짜를 나타내는 NULL입니다. 날짜 형식은 YYYYMMDD입니다. active_start_date가 NULL이 아닌 경우에는 반드시 날짜가 19900101 이후여야 합니다.일정을 만든 다음 시작 날짜를 검토하여 날짜가 제대로 되어 있는지 확인하십시오. 자세한 내용은 일정을 만들고 작업에 연결의 "시작 날짜 예약" 섹션을 참조하십시오.
[ @active_end_date = ] active_end_date
작업 실행을 중지할 수 있는 날짜입니다. active_end_date는 int이며 기본값은 9999년 12월 31일을 나타내는 99991231입니다. 날짜 형식은 YYYYMMDD입니다.[ @active_start_time = ] active_start_time
active_start_date와 active_end_date 사이에서 작업 실행을 시작할 시간입니다. active_start_time은 int이며 기본값은 24시간 기준으로 오전 12시를 가리키는 000000입니다. 시간은 HHMMSS 형식으로 입력해야 합니다.[ @active_end_time = ] active_end_time
active_start_date와 active_end_date 사이에서 작업 실행을 종료할 시간입니다. active_end_time은 int이며 기본값은 24시간 기준으로 오후 11:59:59를 가리키는 235959입니다. 시간은 HHMMSS 형식으로 입력해야 합니다.[ @owner_login_name= ] 'owner_login_name'
일정을 소유하는 서버 보안 주체의 이름입니다. owner_login_name은 sysname이며 기본값은 작성자가 일정을 소유하고 있음을 나타내는 NULL입니다.[ @schedule_uid= ] schedule_uidOUTPUT
일정의 고유 식별자입니다. schedule_uid는 uniqueidentifier 형식의 변수입니다.[ @schedule_id= ] schedule_idOUTPUT
일정 식별자입니다. schedule_id는 int 형식의 변수입니다.[ @originating_server= ] server_name
정보를 제공하기 위해서만 확인됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.
반환 코드 값
0(성공) 또는 1(실패)
결과 집합
없음
주의
SQL Server Management Studio는 작업 구조를 만들고 관리할 수 있는 바람직한 방법을 제공하는데 이는 그래픽을 사용하여 쉽게 작업을 관리할 수 있는 방법입니다.
사용 권한
기본적으로 sysadmin 고정 서버 역할의 멤버는 이 저장 프로시저를 실행할 수 있습니다. 다른 사용자는 msdb 데이터베이스의 다음 SQL Server 에이전트 고정 데이터베이스 역할 중 하나를 부여 받아야 합니다.
SQLAgentUserRole
SQLAgentReaderRole
SQLAgentOperatorRole
이러한 역할의 사용 권한에 대한 자세한 내용은 SQL Server 에이전트 고정 데이터베이스 역할을 참조하십시오.
예
1. 일정 만들기
다음 예에서는 RunOnce라는 일정을 만듭니다. 일정은 일정이 생성된 날짜의 23:30에 한 번 실행됩니다.
USE msdb ;
GO
EXEC dbo.sp_add_schedule
@schedule_name = N'RunOnce',
@freq_type = 1,
@active_start_time = 233000 ;
GO
2. 일정 만들기, 여러 작업에 일정 연결
다음 예에서는 NightlyJobs라는 일정을 만듭니다. 서버 시간이 01:00일 때 이 일정을 사용하는 작업이 매일 실행됩니다. 이 예에서는 BackupDatabase 작업과 RunReports 작업에 일정을 연결합니다.
[!참고]
이 예에서는 BackupDatabase 작업 및 RunReports 작업이 이미 있다고 가정합니다.
USE msdb ;
GO
EXEC sp_add_schedule
@schedule_name = N'NightlyJobs' ,
@freq_type = 4,
@freq_interval = 1,
@active_start_time = 010000 ;
GO
EXEC sp_attach_schedule
@job_name = N'BackupDatabase',
@schedule_name = N'NightlyJobs' ;
GO
EXEC sp_attach_schedule
@job_name = N'RunReports',
@schedule_name = N'NightlyJobs' ;
GO
참고 항목