sp_update_schedule(Transact-SQL)
적용 대상: SQL Server
SQL Server 에이전트 일정에 대한 설정을 변경합니다.
구문
sp_update_schedule
[ [ @schedule_id = ] schedule_id ]
[ , [ @name = ] N'name' ]
[ , [ @new_name = ] N'new_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 = ] N'owner_login_name' ]
[ , [ @automatic_post = ] automatic_post ]
[ ; ]
인수
[ @schedule_id = ] schedule_id
수정할 일정의 식별자입니다. @schedule_id 기본값NULL
인 int입니다.
@schedule_id 또는 @name 지정해야 합니다.
[ @name = ] N'name'
수정할 일정의 이름입니다. @name sysname이며 기본값은 .입니다NULL
.
@schedule_id 또는 @name 지정해야 합니다.
[ @new_name = ] N'new_name'
일정의 새 이름입니다. @new_name sysname이며 기본값은 .입니다NULL
. @new_name NULL
경우 일정의 이름은 변경되지 않습니다.
[ @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이며 이러한 값 중 하나일 수 있습니다.
값 | 설명(단위) |
---|---|
0x1 |
지정된 시간에 |
0x2 |
초 |
0x4 |
분 |
0x8 |
시간 |
[ @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
형식이 지정됩니다.
[ @owner_login_name = ] N'owner_login_name'
일정을 소유하는 서버 보안 주체의 이름입니다. @owner_login_name 기본값NULL
인 sysname이며, 이는 일정이 작성자가 소유하고 있음을 나타냅니다.
[ @automatic_post = ] automatic_post
정보를 제공하기 위해서만 확인됩니다. 지원 안 됨. 향후 호환성은 보장되지 않습니다.
반환 코드 값
0
(성공) 또는 1
(실패).
설명
일정을 사용하는 모든 작업은 즉시 새 설정을 사용합니다. 그러나 일정을 변경해도 현재 실행 중인 작업이 중지되지는 않습니다.
사용 권한
이 저장 프로시저는 db_owner 역할이 소유합니다. 모든 사용자에 대한 사용 권한을 부여 EXECUTE
할 수 있지만 SQL Server 업그레이드 중에 이러한 권한이 재정의될 수 있습니다.
다른 사용자에게는 데이터베이스에서 다음 SQL Server 에이전트 고정 데이터베이스 역할 msdb
중 하나가 부여되어야 합니다.
- SQLAgentUserRole
- SQLAgentReaderRole
- SQLAgentOperatorRole
이러한 역할의 사용 권한에 대한 자세한 내용은 SQL Server 에이전트 고정 데이터베이스 역할을 참조하세요.
sysadmin의 멤버만 다른 사용자가 소유한 일정을 수정할 수 있습니다.
예제
다음 예제에서는 일정 0
의 NightlyJobs
사용 상태를 변경하고 소유자terrid
를 으로 설정합니다.
USE msdb;
GO
EXEC dbo.sp_update_schedule
@name = 'NightlyJobs',
@enabled = 0,
@owner_login_name = 'terrid';
GO