sp_update_schedule(Transact-SQL)

적용 대상:SQL Server

SQL Server 에이전트 일정에 대한 설정을 변경합니다.

Transact-SQL 구문 표기 규칙

구문

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 설정된 16832경우에만 사용됩니다.

[ @active_start_date = ] active_start_date

작업 실행을 시작할 수 있는 날짜입니다. @active_start_date 기본값NULLint입니다. 날짜의 형식은 다음과 같습니다 yyyyMMdd. @active_start_date 설정되면 날짜가 1보다 크거나 같19900101아야 합니다.

일정을 만든 후 시작 날짜를 검토하고 올바른 날짜인지 확인합니다. 자세한 내용은 작업 일정 만들기 및 연결의 "시작 날짜 예약" 섹션을 참조하세요.

[ @active_end_date = ] active_end_date

작업 실행이 중지될 수 있는 날짜입니다. @active_end_date 기본값99991231int입니다. 날짜의 형식은 다음과 같습니다 yyyyMMdd.

[ @active_start_time = ] active_start_time

작업 실행을 시작할 @active_start_date @active_end_date 사이의 날짜에 대한 시간입니다. @active_start_time 기본값000000int입니다. 시간은 24시간 시계와 같이 HHmmss 형식이 지정됩니다.

[ @active_end_time = ] active_end_time

active_start_date 작업 실행을 종료할 @active_end_date 사이의 날짜에 대한 시간입니다. @active_end_time 기본값235959int입니다. 시간은 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멤버만 다른 사용자가 소유한 일정을 수정할 수 있습니다.

예제

다음 예제에서는 일정 0NightlyJobs 사용 가능한 상태 변경하고 소유자를 설정합니다terrid.

USE msdb;
GO

EXEC dbo.sp_update_schedule
    @name = 'NightlyJobs',
    @enabled = 0,
    @owner_login_name = 'terrid';
GO