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


sp_detach_schedule (Transact-SQL)

Область применения: SQL Server

Удаляет ассоциативную связь между расписанием и заданием.

Соглашения о синтаксисе Transact-SQL

Синтаксис

sp_detach_schedule
    [ [ @job_id = ] 'job_id' ]
    [ , [ @job_name = ] N'job_name' ]
    [ , [ @schedule_id = ] schedule_id ]
    [ , [ @schedule_name = ] N'schedule_name' ]
    [ , [ @delete_unused_schedule = ] delete_unused_schedule ]
    [ , [ @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, но их нельзя указать.

[ @delete_unused_schedule = ] delete_unused_schedule

Указывает, удалять ли неиспользованные расписания. @delete_unused_schedule бит, с значением по умолчанию0, что означает, что все расписания хранятся, даже если задания не ссылаются на них. Если задано значение 1, неиспользуемые расписания заданий удаляются, если задания не ссылаются на них.

[ @automatic_post = ] automatic_post

Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.

Значения кода возврата

0 (успешно) или 1 (сбой).

Результирующий набор

Нет.

Разрешения

Эта хранимая процедура принадлежит роли db_owner . Вы можете предоставить EXECUTE разрешения для любого пользователя, но эти разрешения могут быть переопределены во время обновления SQL Server.

Другим пользователям необходимо предоставить одну из следующих агент SQL Server предопределенных ролей базы данных в msdb базе данных:

  • SQLAgentUserRole
  • SQLAgentReaderRole
  • SQLAgentOperatorRole

Владелец задания может присоединить задание к расписанию и отсоединить задание от расписания без необходимости быть владельцем расписания. Однако невозможно удалить расписание, если отсоединение не оставит его без заданий, если вызывающий объект не является владельцем расписания.

Дополнительные сведения о разрешениях этих ролей см. в разделе Предопределенные роли базы данных агента SQL Server.

SQL Server проверяет, принадлежит ли пользователь расписанию. Только члены предопределенной роли сервера sysadmin могут отсоединять расписания от заданий, принадлежащих другому пользователю.

Примеры

Следующий пример удаляет ассоциативную связь между расписанием NightlyJobs и заданием BackupDatabase.

USE msdb;
GO

EXEC dbo.sp_detach_schedule
    @job_name = 'BackupDatabase',
    @schedule_name = 'NightlyJobs';
GO