sp_add_schedule (Transact-SQL)
Область применения: SQL Server Управляемый экземпляр SQL Azure
Создает расписание, которое может использоваться любым количеством заданий.
Соглашения о синтаксисе 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 имеет значение tinyint с значением по умолчанию 1
(включено). Если 0
расписание не включено. Если расписание не включено, задания не выполняются в этом расписании.
[ @freq_type = ] freq_type
Значение, указывающее, когда должно выполняться задание. @freq_type имеет значение int, по умолчанию 0
и может быть одним из этих значений.
значение | Описание |
---|---|
1 |
Однократно |
4 |
Ежедневно |
8 |
Weekly (Еженедельно); |
16 |
Ежемесячная |
32 |
Ежемесячное значение относительно @freq_interval |
64 |
Запуск при запуске службы агент SQL Server |
128 |
Запуск при простое компьютера (не поддерживается в Управляемый экземпляр SQL Azure) |
[ @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 |
First |
2 |
Second |
4 |
Третья |
8 |
Четвертая |
16 |
Last |
[ @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
, указывающее текущую дату. Дата форматируется как yyyyMMdd
. Если @active_start_date нет NULL
, дата должна быть больше или равна 19900101.
После создания расписания просмотрите дату начала и убедитесь, что это правильная дата. Дополнительные сведения см. в разделе "Планирование даты начала" в разделе "Создание и присоединение расписаний к заданиям".
Для еженедельных или ежемесячных расписаний агент игнорирует, если @active_start_date в прошлом, а вместо этого использует текущую дату. При создании расписания агент SQL Server с помощью sp_add_schedule
параметра можно указать @active_start_date параметра, который является датой начала выполнения задания. Если тип расписания является еженедельной или ежемесячной, а параметр @active_start_date задан на дату в прошлом, параметр @active_start_date игнорируется, а текущая дата используется для @active_start_date.
[ @active_end_date = ] active_end_date
Дата, когда может быть остановлено выполнение задания. @active_end_date имеет значение int с значением по умолчанию, указывающее 31 декабря 99991231
9999 года. Форматированный как yyyyMMdd
.
[ @active_start_time = ] active_start_time
Время в любой день между @active_start_date и @active_end_date , чтобы начать выполнение задания. @active_start_time имеет значение int, по умолчанию 000000
указывающее 12:00:00:00 в 24-часовом часовом режиме и должно быть введено с помощью формыHHmmss
.
[ @active_end_time = ] active_end_time
Время в любой день между @active_start_date и @active_end_date завершения выполнения задания. @active_end_time имеет значение int с значением по умолчанию235959
, которое указывает 11:59:59 вечера в 24 часах и должно быть введено с помощью формыHHmmss
.
[ @owner_login_name = ] 'owner_login_name'
Имя сервера-участника, владеющего расписанием. @owner_login_name имеет имя sysname с значением по умолчаниюNULL
, указывающее, что расписание принадлежит создателю.
[ @schedule_uid = ] schedule_uid OUTPUT
Уникальный идентификатор для расписания. @schedule_uid — это переменная типа uniqueidentifier.
[ @schedule_id = ] schedule_id OUTPUT
Идентификатор расписания. @schedule_id — это переменная типа int.
[ @originating_server = ] server_name
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.
Значения кода возврата
0
(успешно) или 1
(сбой).
Результирующий набор
Нет.
Замечания
Среда SQL Server Management Studio обеспечивает простой и наглядный способ управления заданиями и рекомендуется для создания инфраструктуры заданий и управления ей.
Разрешения
Эта хранимая процедура принадлежит роли db_owner . Вы можете предоставить EXECUTE
разрешения для любого пользователя, но эти разрешения могут быть переопределены во время обновления SQL Server.
Другим пользователям необходимо предоставить одну из следующих агент 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
B. Создание расписания, присоединение расписания к нескольким заданиям
В следующем примере создается расписание с именем 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
Связанный контент
- Создание и присоединение расписаний к заданиям
- Планирование задания
- Create a Schedule
- агент 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)