sp_add_schedule(Transact-SQL)

업데이트: 2008년 11월 17일

여러 작업에서 사용할 수 있는 일정을 만듭니다.

구문

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_namesysname이며 기본값은 없습니다.
  • [ @enabled = ] enabled
    일정의 현재 상태를 나타냅니다. enabledtinyint이며 기본값은 1(사용)입니다. 0이 지정되어 있는 경우에는 일정을 사용할 수 없습니다. 일정을 사용할 수 없는 경우 이 일정에 따라 어떠한 작업도 실행되지 않습니다.
  • [ @freq_type = ] freq_type
    작업이 실행될 시기를 나타내는 값입니다. freq_typeint이며 기본값은 0이지만 다음 값 중 하나를 사용할 수 있습니다.

    설명

    1

    한 번

    4

    매일

    8

    매주

    16

    매월

    32

    매월(freq_interval에 상대적임)

    64

    SQLServerAgent 서비스를 시작할 때 실행

    128

    컴퓨터가 유휴 상태일 때 실행

  • [ @freq_interval = ] freq_interval
    작업이 실행되는 날짜입니다. freq_intervalint이며 기본값은 1이지만 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_typeint이며 다음 값 중 하나일 수 있고 기본값은 0입니다.

    설명(단위)

    0x1

    지정된 시간

    0x4

    0x8

  • [ @freq_subday_interval = ] freq_subday_interval
    각 작업 실행 간에 발생할 freq_subday_type 기간의 일 수입니다. freq_subday_intervalint이며 기본값은 0입니다. freq_subday_type1인 경우 freq_subday_interval은 무시됩니다.
  • [ @freq_relative_interval = ] freq_relative_interval
    freq_type이 32(매월, 상대적)인 경우 매월 freq_interval 기간의 작업 발생 횟수입니다. freq_relative_intervalint이며 기본값은 0이지만 다음 값 중 하나를 사용할 수 있습니다. freq_type이 32가 아닌 경우 freq_relative_interval은 무시됩니다.

    설명(단위)

    1

    첫째

    2

    둘째

    4

    셋째

    8

    넷째

    16

    마지막

  • [ @freq_recurrence_factor = ] freq_recurrence_factor
    예약된 작업 실행 간에 발생하는 주 또는 월의 수입니다. freq_recurrence_factorfreq_type8, 16 또는 32인 경우에만 사용됩니다. freq_recurrence_factorint이며 기본값은 0입니다.
  • [ @active_start_date = ] active_start_date
    작업 실행이 시작되는 날짜입니다. active_start_dateint이며 기본값은 오늘 날짜를 나타내는 NULL입니다. 날짜 형식은 YYYYMMDD입니다. active_start_date가 NULL이 아닌 경우 날짜는 19900101보다 크거나 같아야 합니다. 일정을 만든 후 시작 날짜를 검토하고 올바른 날짜인지 확인하십시오. 자세한 내용은 일정 만들기의 "시작 날짜 예약" 섹션을 참조하십시오.
  • [ @active_end_date = ] active_end_date
    작업 실행이 중지되는 날짜입니다. active_end_dateint이며 기본값은 9999년 12월 31일을 가리키는 99991231입니다. 날짜는 YYYYMMDD 형식으로 지정해야 합니다.
  • [ @active_start_time = ] active_start_time
    active_start_dateactive_end_date 사이에서 작업 실행을 시작할 시간입니다. active_start_timeint이며 기본값은 24시간 기준으로 오전 12시를 가리키는 000000입니다. 시간은 HHMMSS 형식으로 입력해야 합니다.
  • [ @active_end_time = ] active_end_time
    active_start_date와 작업 실행을 종료할 active_end_date 사이 날짜의 시간입니다. active_end_timeint이며 기본값은 24시간 기준으로 오후 11:59:59를 가리키는 235959입니다. 시간은 HHMMSS 형식으로 입력해야 합니다.
  • [ @owner_login_name= ] 'owner_login_name'
    일정을 소유하는 서버 보안 주체의 이름입니다. owner_login_namesysname이며 기본값은 작성자가 일정을 소유하고 있음을 나타내는 NULL입니다.
  • [ @schedule_uid= ] schedule_uidOUTPUT
    일정의 고유 식별자입니다. schedule_uiduniqueidentifier 유형의 변수입니다.
  • [ @schedule_id= ] schedule_idOUTPUT
    일정의 식별자입니다. schedule_idint 유형의 변수입니다.
  • [ @originating_server= ] server_name
    정보 제공용으로만 식별됩니다. 지원되지 않습니다. 향후 호환성은 보장되지 않습니다.

반환 코드 값

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

결과 집합

없음

주의

SQL Server Management Studio는 작업 구조를 만들고 관리할 수 있는 바람직한 방법을 제공하는데 이는 그래픽을 사용하여 쉽게 작업을 관리할 수 있는 방법입니다.

사용 권한

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

  • SQLAgentUserRole
  • SQLAgentReaderRole
  • SQLAgentOperatorRole

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

1. 일정 만들기

다음 예에서는 RunOnce라는 일정을 만듭니다. 일정은 일정이 생성된 날짜의 특정 시간 23시 30분에 실행됩니다.

USE msdb ;
GO

EXEC dbo.sp_add_schedule
    @schedule_name = N'RunOnce',
    @freq_type = 1,
    @active_start_time = 233000 ;

GO

2. 일정 만들기, 여러 작업에 일정 연결

다음 예에서는 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

참고 항목

참조

sp_attach_schedule(Transact-SQL)
sp_detach_schedule(Transact-SQL)
sp_delete_schedule(Transact-SQL)

도움말 및 정보

SQL Server 2005 지원 받기

변경 내역

릴리스 내역

2008년 11월 17일

변경된 내용
  • @ active_start_date에 대한 정보를 추가했습니다.

2006년 12월 12일

변경된 내용
  • @freq_subday_interval@freq_relative_interval에 대한 설명을 추가했습니다.

2006년 7월 17일

변경된 내용
  • @freq_subday_type에서 초 옵션을 제거했습니다. 이 옵션은 지원되지 않습니다.

2006년 4월 14일

변경된 내용
  • @freq_interval의 기본값을 0에서 1로 수정했습니다.