sp_add_jobschedule(Transact-SQL)
적용 대상: SQL Server Azure SQL Managed Instance
SQL Server 에이전트 작업에 대한 일정을 만듭니다.
Important
현재 Azure SQL Managed Instance에서는 SQL Server 에이전트 기능이 대부분 지원됩니다. 자세한 내용은 SQL Server와 Azure SQL Managed Instance 간의 T-SQL 차이점을 참조하세요.
구문
sp_add_jobschedule
[ [ @job_id = ] 'job_id' ]
[ , [ @job_name = ] N'job_name' ]
, [ @name = ] N'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 ]
[ , [ @schedule_id = ] schedule_id OUTPUT ]
[ , [ @automatic_post = ] automatic_post ]
[ , [ @schedule_uid = ] 'schedule_uid' OUTPUT ]
[ ; ]
인수
[ @job_id = ] 'job_id'
일정이 추가되는 작업의 작업 ID 번호입니다. @job_id 기본값NULL
인 uniqueidentifier입니다.
@job_id 또는 @job_name 지정해야 하지만 둘 다 지정할 수는 없습니다.
[ @job_name = ] N'job_name'
일정이 추가되는 작업의 이름입니다. @job_name sysname이며 기본값은 .입니다NULL
.
@job_id 또는 @job_name 지정해야 하지만 둘 다 지정할 수는 없습니다.
[ @name = ] N'name'
일정의 이름입니다. @name 기본값이 없는 sysname입니다.
[ @enabled = ] 사용
일정의 현재 상태를 나타냅니다. @enabled 기본값 1
(사용)을 사용하여 tinyint입니다. 이 경우 0
일정을 사용할 수 없습니다. 일정을 사용하지 않도록 설정하면 작업이 실행되지 않습니다.
[ @freq_type = ] freq_type
작업을 실행할 시기를 나타내는 값입니다. @freq_type int이며 다음 값 중 하나일 수 있습니다.
값 | 설명 |
---|---|
1 |
한 번 |
4 |
매일 |
8 |
매주 |
16 |
매월 |
32 |
매월 @freq_interval 기준으로 합니다. |
64 |
SQL Server 에이전트 서비스가 시작될 때 실행합니다. |
128 |
컴퓨터가 유휴 상태일 때 실행합니다. |
[ @freq_interval = ] freq_interval
작업이 실행되는 요일입니다. @freq_interval 기본값0
인 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 (SQL Server 에이전트 서비스가 시작될 때) |
@freq_interval 사용되지 않습니다. |
128 |
@freq_interval 사용되지 않습니다. |
[ @freq_subday_type = ] freq_subday_type
@freq_subday_interval 단위를 지정합니다. @freq_subday_type int이며 다음 값 중 하나일 수 있습니다.
값 | 설명(단위) |
---|---|
1 |
지정된 시간에 |
2 |
초 |
4 |
분 |
8 |
시간 |
[ @freq_subday_interval = ] freq_subday_interval
작업의 각 실행 사이에 발생할 @freq_subday_type 기간의 수입니다. @freq_subday_interval 기본값0
인 int입니다.
[ @freq_relative_interval = ] freq_relative_interval
@freq_type (월별 상대)로 설정된 32
경우 @freq_interval 추가로 정의합니다.
@freq_relative_interval int이며 다음 값 중 하나일 수 있습니다.
값 | 설명(단위) |
---|---|
1 |
첫 번째 |
2 |
두 번째 |
4 |
세 번째 |
8 |
네 번째 |
16 |
마지막 |
@freq_relative_interval 간격의 발생을 나타냅니다. 예를 들어 @freq_relative_interval 설정2
되고 @freq_type 설정32
되고 @freq_interval 설정된 3
경우 예약된 작업은 매월 두 번째 화요일에 발생합니다.
[ @freq_recurrence_factor = ] freq_recurrence_factor
예약된 작업 실행 사이의 주 또는 월 수입니다. @freq_recurrence_factor int이며 기본값은 .입니다0
. @freq_recurrence_factor @freq_type 설정된 16
8
32
경우에만 사용됩니다.
[ @active_start_date = ] active_start_date
작업 실행을 시작할 수 있는 날짜입니다. @active_start_date 기본값NULL
인 int입니다. 날짜의 형식은 다음과 같습니다 yyyyMMdd
. @active_start_date 설정되면 날짜가 1보다 크거나 같19900101
아야 합니다.
일정을 만든 후 시작 날짜를 검토하고 올바른 날짜인지 확인합니다. 자세한 내용은 작업 일정 만들기 및 연결의 "시작 날짜 예약" 섹션을 참조하세요.
[ @active_end_date = ] active_end_date
작업 실행을 중지할 수 있는 날짜입니다. @active_end_date 기본값99991231
인 int입니다. 날짜의 형식은 다음과 같습니다 yyyyMMdd
.
[ @active_start_time = ] active_start_time
작업 실행을 시작할 @active_start_date @active_end_date 사이의 날짜에 대한 시간입니다. @active_start_time 기본값000000
인 int입니다. 시간은 24시간 시계와 같이 HHmmss
형식이 지정됩니다.
[ @active_end_time = ] active_end_time
active_start_date 작업 실행을 종료할 @active_end_date 사이의 날짜에 대한 시간입니다. @active_end_time 기본값235959
인 int입니다. 시간은 24시간 시계와 같이 HHmmss
형식이 지정됩니다.
[ @schedule_id = ] schedule_id OUTPUT
성공적으로 만들어진 경우 일정에 할당된 ID 번호를 예약합니다. @schedule_id int 형식의 OUTPUT 매개 변수입니다.
[ @automatic_post = ] automatic_post
정보를 제공하기 위해서만 확인됩니다. 지원 안 됨. 향후 호환성은 보장되지 않습니다.
[ @schedule_uid = ] 'schedule_uid' OUTPUT
일정의 고유 식별자입니다. @schedule_uid uniqueidentifier 형식의 OUTPUT 매개 변수입니다.
반환 코드 값
0
(성공) 또는 1
(실패).
결과 집합
없음.
설명
이제 작업 일정은 작업과 독립적으로 관리할 수 있습니다. 작업에 일정을 추가하려면 일정을 만들고 일정 sp_attach_schedule
에 작업을 연결하는 데 사용합니다sp_add_schedule
.
사용 권한
이 절차에 대한 사용 권한을 부여 EXECUTE
할 수 있지만 SQL Server 업그레이드 중에 이러한 권한이 재정의될 수 있습니다.
다른 사용자에게는 데이터베이스에서 다음 SQL Server 에이전트 고정 데이터베이스 역할 msdb
중 하나가 부여되어야 합니다.
- SQLAgentUserRole
- SQLAgentReaderRole
- SQLAgentOperatorRole
이러한 역할의 사용 권한에 대한 자세한 내용은 SQL Server 에이전트 고정 데이터베이스 역할을 참조하세요.
예제
다음 예제에서는 매주 토요일 오전 2시에 실행되는 작업 일정을 SaturdayReports
할당합니다.
EXEC msdb.dbo.sp_add_jobschedule
@job_name = N'SaturdayReports', -- Job name
@name = N'Weekly_Sat_2AM', -- Schedule name
@freq_type = 8, -- Weekly
@freq_interval = 64, -- Saturday
@freq_recurrence_factor = 1, -- every week
@active_start_time = 20000 -- 2:00 AM