sp_add_jobschedule(Transact-SQL)

적용 대상:SQL ServerAzure SQL Managed Instance

SQL Server 에이전트 작업에 대한 일정을 만듭니다.

Transact-SQL 구문 표기 규칙

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 기본값NULLuniqueidentifier입니다.

@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이며 다음 값 중 하나일 수 있습니다.

설명(단위)
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 형식이 지정됩니다.

[ @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.

사용 권한

이 저장 프로시저는 db_owner 역할이 소유합니다. 모든 사용자에 대한 사용 권한을 부여 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