Поделиться через


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 в каждом месяце, если значение аргумента freq_interval равно 32 (относительно ежемесячно). Аргумент 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, что означает сегодняшнюю дату. Формат даты: ГГГГ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, что означает 12:00:00 A.M. на 24-часовых часах и должно быть задано в формате ЧЧММСС.

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

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

  • [ @automatic_post =] automatic_post
    Зарезервировано.

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

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

Замечания

Все задания, которые используют расписание, немедленно используют новые установки. Однако изменение расписания не останавливает выполнение заданий.

Разрешения

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

  • 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

Журнал изменений

Обновления

В описание параметра даты начала включены сведения о подтверждении даты начала после создания расписания.