sp_add_schedule (Transact-SQL)

Создает расписание, которое может использоваться любым количеством заданий.

Значок ссылки на раздел Синтаксические обозначения Transact-SQL

Синтаксис

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_name имеет тип sysname и не имеет значения по умолчанию.

  • [ @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, значение по умолчанию 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_type имеет тип int со значением по умолчанию 0 и может принимать одно из следующих значений.

    Значение

    Описание (единица измерения)

    0x1

    В указанное время

    0x2

    Секунды

    0x4

    Минуты

    0x8

    Часы

  • [ @freq_subday_interval = ] freq_subday_interval
    Число периодов аргумента freq_subday_type, которое должно пройти между выполнениями задания. Аргумент freq_subday_intervalимеет тип int и значение по умолчанию 0. Примечание. Интервал должен составлять более 10 секунд. Параметр freq_subday_interval не учитывается, если параметр freq_subday_type равен 1.

  • [ @freq_relative_interval = ] freq_relative_interval
    Запланированное задание выполняется по дням freq_interval каждый месяц, если freq_interval — 32 (относительно ежемесячно). Аргумент freq_relative_intervalимеет тип int со значением по умолчанию 0 и может принимать одно из следующих значений. Параметр freq_relative_interval не учитывается, если параметр freq_type не равен 32.

    Значение

    Описание (единица измерения)

    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, которое обозначает сегодняшнюю дату. Формат даты: ГГГГMMДД. Если значение аргумента active_start_date не равно NULL, дата должна быть равна или превышать 19900101.

    После создания расписания проверьте дату начала и убедитесь, что она задана правильно. Дополнительные сведения см. в подразделе «Планирование даты начала» раздела Создание и присоединение расписаний к заданиям.

    При обработке еженедельных или ежемесячных расписаний агент пропускает значение active_start_date, если оно в прошлом, и использует вместо него текущую дату. Когда расписание агента SQL Server создается с использованием хранимой процедуры sp_add_schedule, можно указать параметр active_start_date, который определяет дату начала выполнения задания. Если это еженедельное или ежемесячное расписание, а параметру active_start_date задана дата в прошлом, параметр active_start_date пропускается и в качестве его значения используется текущая дата.

  • [ @active_end_date = ] active_end_date
    Дата, когда может быть остановлено выполнение задания. Аргумент active_end_dateимеет тип int и значение по умолчанию 99991231, которое соответствует 31 декабря 9999 г. Используется формат ГГГГММДД.

  • [ @active_start_time = ] active_start_time
    Время в любой день в промежутке между значениями аргументов active_start_date и active_end_date, когда начинается выполнение задания. Аргумент active_start_timeимеет тип int и значение по умолчанию 000000, которое соответствует 12:00:00 в 24-часовом формате и должно вводиться в формате ЧЧММСС.

  • [ @active_end_time = ] active_end_time
    Время в любой день в промежутке между значениями аргументов active_start_date и active_end_date, когда заканчивается выполнение задания. Аргумент active_end_timeимеет тип int и значение по умолчанию 235959, которое соответствует 23:59:59 в 24-часовом формате и должно вводиться в формате ЧЧММСС.

  • [ @owner_login_name= ] 'owner_login_name'
    Имя сервера-участника, владеющего расписанием. Аргумент owner_login_name имеет тип sysname и значение по умолчанию NULL, которое означает, что расписанием владеет его создатель.

  • [ @schedule_uid= ] schedule_uidOUTPUT
    Уникальный идентификатор для расписания. schedule_uid является переменной типа uniqueidentifier.

  • [ @schedule_id= ] schedule_idOUTPUT
    Идентификатор расписания. schedule_id является переменной типа int.

  • [ @originating_server= ] server_name
    Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.

Значения кодов возврата

0 (успешное завершение) или 1 (неуспешное завершение)

Результирующие наборы

Нет

Замечания

Среда Среда SQL Server Management Studio обеспечивает доступный графический способ управления заданиями и рекомендуется для создания и управления инфраструктурой заданий.

Разрешения

По умолчанию эту хранимую процедуру могут выполнять члены предопределенной роли сервера sysadmin. Другим пользователям должна быть предоставлена одна из следующих предопределенных ролей базы данных агента SQL Server в базе данных msdb.

  • SQLAgentUserRole

  • SQLAgentReaderRole

  • SQLAgentOperatorRole

Дополнительные сведения о разрешениях для этих ролей см. в разделе Предопределенные роли базы данных агента SQL Server.

Примеры

А.Создание расписания

В следующем примере создается расписание с именем RunOnce. Расписание выполняется один раз, в 23:30 в день создания.

USE msdb ;
GO

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

GO

Б.Создание расписания, присоединение расписания к нескольким заданиям

В следующем примере создается расписание с именем 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

См. также

Справочник

Хранимые процедуры агента SQL Server (Transact-SQL)

sp_add_jobschedule (Transact-SQL)

sp_update_schedule (Transact-SQL)

sp_delete_schedule (Transact-SQL)

sp_help_schedule (Transact-SQL)

sp_attach_schedule (Transact-SQL)

Основные понятия

Создание и присоединение расписаний к заданиям

Планирование задания

Создание расписания