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. Аргумент freq_subday_interval не учитывается, если аргумент freq_subday_type имеет значение 1. Примечание. Интервал должен быть дольше 10 секунд.

  • [ @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_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, которое соответствует 00: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.

Примеры

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

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