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


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 базы данных.

Разрешения

Вы можете предоставить 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