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)