다음을 통해 공유


sp_update_schedule(Transact-SQL)

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

항목 링크 아이콘Transact-SQL 구문 표기 규칙

구문

sp_update_schedule 
    {   [ @schedule_id = ] schedule_id 
      | [ @name = ] 'schedule_name' }
    [ , [ @new_name = ] 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 = ] 'owner_login_name' ]
    [ , [ @automatic_post =] automatic_post ]

인수

  • [ @schedule_id = ] schedule_id
    수정할 일정의 식별자입니다. schedule_id는 int이며 기본값은 없습니다. schedule_id 또는 schedule_name을 지정해야 합니다.

  • [ @name = ] 'schedule_name'
    수정할 일정의 이름입니다. schedule_name은 sysname이며 기본값은 없습니다. schedule_id 또는 schedule_name을 지정해야 합니다.

  • [ @new_name= ] new_name
    일정의 새 이름입니다. new_name은 sysname이며 기본값은 NULL입니다. new_name이 NULL이면 일정의 이름이 변경되지 않습니다.

  • [ @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이고 기본값은 0이며 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_relative_interval = ] freq_relative_interval
    freq_interval이 32(매월 상대적)인 경우 매월 freq_interval 기간의 작업 발생 횟수입니다. freq_relative_interval은 int이고 기본값은 0이며 다음 값 중 하나를 사용할 수 있습니다.

    설명(단위)

    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입니다.

  • [ @automatic_post =] automatic_post
    예약되어 있습니다.

반환 코드 값

0(성공) 또는 1(실패)

주의

일정을 즉시 사용하는 모든 작업은 새 설정을 사용합니다. 그러나 일정을 변경해도 현재 실행 중인 작업은 중지되지 않습니다.

사용 권한

기본적으로 sysadmin 고정 서버 역할의 멤버는 이 저장 프로시저를 실행할 수 있습니다. 다른 사용자는 msdb 데이터베이스의 다음 SQL Server 에이전트 고정 데이터베이스 역할 중 하나를 부여 받아야 합니다.

  • SQLAgentUserRole

  • SQLAgentReaderRole

  • SQLAgentOperatorRole

이러한 역할의 사용 권한에 대한 자세한 내용은 SQL Server 에이전트 고정 데이터베이스 역할을 참조하십시오.

sysadmin의 멤버만 다른 사용자가 소유한 일정을 수정할 수 있습니다.

다음 예에서는 NightlyJobs 일정의 활성화된 상태를 0으로 변경하고 소유자를 terrid로 설정합니다.

USE msdb ;
GO

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