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
(сбой).
Результирующий набор
Нет.
Разрешения
Вы можете предоставить 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