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


sp_update_schedule (Transact-SQL)

Область применения: SQL Server

Изменяет параметры расписания агент SQL Server.

Соглашения о синтаксисе Transact-SQL

Синтаксис

sp_update_schedule
    [ [ @schedule_id = ] schedule_id ]
    [ , [ @name = ] N'name' ]
    [ , [ @new_name = ] N'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 = ] N'owner_login_name' ]
    [ , [ @automatic_post = ] automatic_post ]
[ ; ]

Аргументы

[ @schedule_id = ] schedule_id

Идентификатор изменяемого расписания. @schedule_id имеет значение int с значением по умолчаниюNULL.

Необходимо указать либо @schedule_id, либо @name.

[ @name = ] N'name'

Имя изменяемого расписания. @name имеет имя sysname с значением по умолчаниюNULL.

Необходимо указать либо @schedule_id, либо @name.

[ @new_name = ] N'new_name'

Новое имя расписания. @new_name — sysname с значением по умолчаниюNULL. Если @new_name , NULLимя расписания не изменяется.

[ @enabled = ] включен

Отображает текущее состояние расписания. @enabled имеет значение tinyint с значением по умолчанию 1 (включено). Если 0расписание не включено. Если расписание не включено, задания не будут выполняться в этом расписании.

[ @freq_type = ] freq_type

Значение, указывающее, когда должно выполняться задание. @freq_type является int и может быть одним из этих значений.

значение Описание
1 Однократно
4 Ежедневно
8 Weekly (Еженедельно);
16 Ежемесячная
32 Ежемесячное значение относительно @freq_interval
64 Запуск при запуске службы агент SQL Server
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(при запуске службы агент 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 имеет значение int с значением по умолчанию0.

[ @freq_relative_interval = ] freq_relative_interval

Далее определяет @freq_interval, если для @freq_type задано 32 значение (ежемесячное относительно).

@freq_relative_interval является int и может быть одним из этих значений.

Значение Описание (единица измерения)
1 First
2 Second
4 Третья
8 Четвертая
16 Last

@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 задано 8значение , 16или 32.

[ @active_start_date = ] active_start_date

Дата начала выполнения задания. @active_start_date имеет значение int с значением по умолчаниюNULL. Дата форматируется как yyyyMMdd. Если задано @active_start_date , дата должна быть больше или равна 19900101.

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

[ @active_end_date = ] active_end_date

Дата, когда может быть остановлено выполнение задания. @active_end_date имеет значение int с значением по умолчанию99991231. Дата форматируется как yyyyMMdd.

[ @active_start_time = ] active_start_time

Время в любой день между @active_start_date и @active_end_date , чтобы начать выполнение задания. @active_start_time имеет значение int с значением по умолчанию000000. Время отформатировано как HHmmss в 24-часовом режиме.

[ @active_end_time = ] active_end_time

Время в любой день между active_start_date и @active_end_date завершения выполнения задания. @active_end_time имеет значение int с значением по умолчанию235959. Время отформатировано как HHmmss в 24-часовом режиме.

[ @owner_login_name = ] N'owner_login_name'

Имя сервера-участника, владеющего расписанием. @owner_login_name имеет имя sysname с значением по умолчаниюNULL, указывающее, что расписание принадлежит создателю.

[ @automatic_post = ] automatic_post

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

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

0 (успешно) или 1 (сбой).

Замечания

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

Разрешения

Эта хранимая процедура принадлежит роли db_owner . Вы можете предоставить EXECUTE разрешения для любого пользователя, но эти разрешения могут быть переопределены во время обновления SQL Server.

Другим пользователям необходимо предоставить одну из следующих агент 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