sp_add_schedule(Transact-SQL)
적용 대상: SQL Server Azure SQL Managed Instance
여러 작업에서 사용할 수 있는 일정을 만듭니다.
구문
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 기본값 1
(사용)을 사용하여 tinyint입니다. 이 경우 0
일정을 사용할 수 없습니다. 일정을 사용하도록 설정하지 않으면 이 일정에 따라 작업이 실행되지 않습니다.
[ @freq_type = ] freq_type
작업이 실행될 시기를 나타내는 값입니다. @freq_type 기본값0
인 int이며 이러한 값 중 하나일 수 있습니다.
값 | 설명 |
---|---|
1 |
한 번 |
4 |
매일 |
8 |
매주 |
16 |
매월 |
32 |
월별, @freq_interval 기준 |
64 |
SQL Server 에이전트 서비스가 시작될 때 실행 |
128 |
컴퓨터가 유휴 상태일 때 실행(Azure SQL Managed Instance에서 지원되지 않음) |
[ @freq_interval = ] @freq_interval
작업이 실행되는 날짜입니다. @freq_interval 기본값1
인 int이며 @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 기본값0
인 int이며 이러한 값 중 하나일 수 있습니다.
값 | 설명(단위) |
---|---|
0x1 |
지정된 시간에 |
0x2 |
초 |
0x4 |
분 |
0x8 |
시간 |
[ @freq_subday_interval = ] freq_subday_interval
작업의 각 실행 사이에 발생할 @freq_subday_type 기간의 수입니다. @freq_subday_interval 기본값0
인 int입니다. 간격은 10초 이상이어야 합니다. @freq_subday_type 같은 1
경우 @freq_subday_interval 무시됩니다.
[ @freq_relative_interval = ] freq_relative_interval
@freq_interval 32(월별 상대)인 경우 매월 작업의 @freq_interval 발생 합니다. @freq_relative_interval 기본값0
인 int이며 이러한 값 중 하나일 수 있습니다. @freq_type 32와 같지 않은 경우 @freq_relative_interval 무시됩니다.
값 | 설명(단위) |
---|---|
1 |
첫 번째 |
2 |
두 번째 |
4 |
세 번째 |
8 |
네 번째 |
16 |
마지막 |
[ @freq_recurrence_factor = ] freq_recurrence_factor
예약된 작업 실행 사이의 주 또는 월 수입니다. @freq_recurrence_factor @freq_type 32
8
16
또는 . @freq_recurrence_factor int이며 기본값은 .입니다0
.
[ @active_start_date = ] active_start_date
작업 실행을 시작할 수 있는 날짜입니다. @active_start_date int이며, 기본값NULL
은 오늘 날짜를 나타냅니다. 날짜의 형식은 다음과 같습니다 yyyyMMdd
. @active_start_date 없는 NULL
경우 날짜는 19900101 보다 크거나 같아야 합니다.
일정을 만든 후 시작 날짜를 검토하고 올바른 날짜인지 확인합니다. 자세한 내용은 작업 일정 만들기 및 연결의 "시작 날짜 예약" 섹션을 참조하세요.
매주 또는 매월 일정의 경우 에이전트는 @active_start_date 과거인지를 무시하고 대신 현재 날짜를 사용합니다. SQL Server 에이전트 일정을 만들 sp_add_schedule
때 작업 실행이 시작되는 날짜인 매개 변수 @active_start_date 지정하는 옵션이 있습니다. 일정 유형이 매주 또는 매월이고 @active_start_date 매개 변수가 과거의 날짜로 설정된 경우 @active_start_date 매개 변수는 무시되고 현재 날짜는 @active_start_date 사용됩니다.
[ @active_end_date = ] active_end_date
작업 실행을 중지할 수 있는 날짜입니다. @active_end_date 9999년 12월 31일을 나타내는 기본값99991231
인 int입니다. 로 형식이 지정 yyyyMMdd
됩니다.
[ @active_start_time = ] active_start_time
작업 실행을 시작할 @active_start_date @active_end_date 사이의 모든 날짜 시간입니다. @active_start_time int이며 기본값000000
은 24시간 시계에서 오전 12:00:00을 나타내며 양식을 HHmmss
사용하여 입력해야 합니다.
[ @active_end_time = ] active_end_time
작업의 실행을 종료할 @active_start_date @active_end_date 사이의 날짜에 대한 시간입니다. @active_end_time 24시간 시계에서 오후 11시 59분 59분이라는 기본값235959
을 사용하여 int이며 양식을 HHmmss
사용하여 입력해야 합니다.
[ @owner_login_name = ] 'owner_login_name'
일정을 소유하는 서버 보안 주체의 이름입니다. @owner_login_name 기본값NULL
인 sysname이며, 이는 일정이 작성자가 소유하고 있음을 나타냅니다.
[ @schedule_uid = ] schedule_uid OUTPUT
일정의 고유 식별자입니다. @schedule_uid uniqueidentifier 형식의 변수입니다.
[ @schedule_id = ] schedule_id OUTPUT
일정에 대한 식별자입니다. @schedule_id int 형식의 변수입니다.
[ @originating_server = ] server_name
정보를 제공하기 위해서만 확인됩니다. 지원 안 됨. 향후 호환성은 보장되지 않습니다.
반환 코드 값
0
(성공) 또는 1
(실패).
결과 집합
없음.
설명
SQL Server Management Studio는 작업 구조를 만들고 관리할 수 있는 바람직한 방법을 제공하는데, 이는 그래픽을 사용하여 쉽게 작업을 관리할 수 있는 방법입니다.
사용 권한
이 저장 프로시저는 db_owner 역할이 소유합니다. 모든 사용자에 대한 사용 권한을 부여 EXECUTE
할 수 있지만 SQL Server 업그레이드 중에 이러한 권한이 재정의될 수 있습니다.
다른 사용자에게는 데이터베이스에서 다음 SQL Server 에이전트 고정 데이터베이스 역할 msdb
중 하나가 부여되어야 합니다.
- SQLAgentUserRole
- SQLAgentReaderRole
- SQLAgentOperatorRole
이러한 역할의 사용 권한에 대한 자세한 내용은 SQL Server 에이전트 고정 데이터베이스 역할을 참조하세요.
예제
A. 일정 만들기
다음 예제에서는 이름이 지정된 RunOnce
일정을 만듭니다. 일정은 일정이 만들어진 날에 한 번 23:30
실행됩니다.
USE msdb;
GO
EXEC dbo.sp_add_schedule
@schedule_name = N'RunOnce',
@freq_type = 1,
@active_start_time = 233000;
GO
B. 일정을 만들고 일정을 여러 작업에 연결
다음 예제에서는 이름이 지정된 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