sp_attach_schedule (Transact-SQL)
Область применения: SQL Server
Назначает расписание выполнения задания.
Соглашения о синтаксисе Transact-SQL
Синтаксис
sp_attach_schedule
[ [ @job_id = ] 'job_id' ]
[ , [ @job_name = ] N'job_name' ]
[ , [ @schedule_id = ] schedule_id ]
[ , [ @schedule_name = ] N'schedule_name' ]
[ , [ @automatic_post = ] automatic_post ]
[ ; ]
Аргументы
[ @job_id = ] 'job_id'
Идентификационный номер задания, добавляемого в расписание. @job_id является уникальным идентификатором по умолчаниюNULL
.
Необходимо указать @job_id или @job_name, но их нельзя указать.
[ @job_name = ] N'job_name'
Имя задания, к которому добавляется расписание. @job_name — sysname с значением по умолчаниюNULL
.
Необходимо указать @job_id или @job_name, но их нельзя указать.
[ @schedule_id = ] schedule_id
Идентификационный номер расписания, задаваемого для задания. @schedule_id имеет значение int с значением по умолчаниюNULL
.
Необходимо указать @schedule_id или @schedule_name, но их нельзя указать.
[ @schedule_name = ] N'schedule_name'
Имя элемента расписания, задаваемого для задания. @schedule_name — sysname с значением по умолчаниюNULL
.
Необходимо указать @schedule_id или @schedule_name, но их нельзя указать.
[ @automatic_post = ] automatic_post
@automatic_post бит с значением по умолчанию1
.
Замечания
Расписание и задание должны иметь одного и того же владельца.
Расписание может быть назначено более чем одному заданию. Задание может выполняться более чем в одном расписании.
Эта хранимая процедура должна выполняться из msdb
базы данных.
Разрешения
Эта хранимая процедура принадлежит роли db_owner . Вы можете предоставить EXECUTE
разрешения для любого пользователя, но эти разрешения могут быть переопределены во время обновления SQL Server.
Другим пользователям необходимо предоставить одну из следующих агент SQL Server предопределенных ролей базы данных в msdb
базе данных:
- SQLAgentUserRole
- SQLAgentReaderRole
- SQLAgentOperatorRole
Владелец задания может присоединить задание к расписанию и отсоединить задание от расписания без необходимости быть владельцем расписания. Однако невозможно удалить расписание, если отсоединение не оставит его без заданий, если вызывающий объект не является владельцем расписания.
Дополнительные сведения о разрешениях этих ролей см. в разделе Предопределенные роли базы данных агента SQL Server.
SQL Server проверяет, принадлежит ли пользователь как заданию, так и расписанию.
Примеры
В следующем примере создается расписание с именем 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