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


sp_attach_schedule (Transact-SQL)

Назначает расписание выполнения задания.

Значок ссылки на разделСоглашения о синтаксическом обозначении в Transact-SQL

Синтаксис

sp_attach_schedule
     { [ @job_id = ] job_id | [ @job_name = ] 'job_name' } , 
     { [ @schedule_id = ] schedule_id 
     | [ @schedule_name = ] 'schedule_name' }

Аргументы

  • [ @job_id= ] job_id
    Идентификационный номер задания, для которого назначается расписание. Аргумент job_id имеет тип uniqueidentifier и значение по умолчанию NULL.

  • [ @job_name = ] 'job_name'
    Имя задания, для которого назначается расписание. Аргумент job_name имеет тип sysname и значение по умолчанию NULL.

    ПримечаниеПримечание

    Необходимо задать либо аргумент job_id, либо аргумент job_name, но не оба аргумента сразу.

  • [ @schedule_id = ] schedule_id
    Идентификационный номер расписания, которое назначается заданию. Аргумент schedule_id имеет тип int и значение по умолчанию NULL.

  • [ @schedule_name = ] 'schedule_name'
    Имя расписания, назначенного заданию. Аргумент schedule_name имеет тип sysname и значение по умолчанию NULL.

    ПримечаниеПримечание

    Необходимо указать либо аргумент schedule_id, либо аргумент schedule_name, но не оба аргумента одновременно.

Замечания

Расписание и задание должны иметь одного и того же владельца.

Расписание может быть назначено более чем одному заданию. Задание может выполняться более чем в одном расписании.

Данную хранимую процедуру следует запускать из базы данных msdb.

Разрешения

По умолчанию эту хранимую процедуру могут выполнять члены предопределенной роли сервера sysadmin. Другим пользователям должна быть предоставлена одна из следующих предопределенных ролей базы данных агента 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