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


sp_attach_schedule (Transact-SQL)

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

Применимо для следующих объектов: SQL Server (начиная с SQL Server 2008 до текущей версии).

Значок ссылки на раздел Cинтаксические обозначения в 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

См. также

Справочник

sp_add_schedule (Transact-SQL)

sp_detach_schedule (Transact-SQL)

sp_delete_schedule (Transact-SQL)