sp_delete_schedule (Transact-SQL)
Область применения: SQL Server
Удаляет расписание.
Соглашения о синтаксисе Transact-SQL
Синтаксис
sp_delete_schedule
[ [ @schedule_id = ] schedule_id ]
[ , [ @schedule_name = ] N'schedule_name' ]
[ , [ @force_delete = ] force_delete ]
[ , [ @automatic_post = ] automatic_post ]
[ ; ]
Аргументы
[ @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, но их нельзя указать.
[ @force_delete = ] force_delete
Указывает, будет ли процедура завершаться с ошибкой, если расписание прикреплено к заданию. @force_delete бит с значением по умолчанию0
.
- Если @force_delete
0
, хранимая процедура завершается ошибкой, если расписание присоединено к заданию. - Если @force_delete
1
, расписание удаляется независимо от того, присоединено ли расписание к заданию.
[ @automatic_post = ] automatic_post
Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.
Значения кода возврата
0
(успешно) или 1
(сбой).
Результирующий набор
Нет.
Замечания
По умолчанию расписание нельзя удалить, если расписание присоединено к заданию. Чтобы удалить расписание, присоединенное к заданию, укажите значение 1
для @force_delete. Удаление расписания не останавливает выполняемые в данный момент задания.
Разрешения
Эта хранимая процедура принадлежит роли db_owner . Вы можете предоставить EXECUTE
разрешения для любого пользователя, но эти разрешения могут быть переопределены во время обновления SQL Server.
Другим пользователям необходимо предоставить одну из следующих агент SQL Server предопределенных ролей базы данных в msdb
базе данных:
- SQLAgentUserRole
- SQLAgentReaderRole
- SQLAgentOperatorRole
Владелец задания может присоединить задание к расписанию и отсоединить задание от расписания без необходимости быть владельцем расписания. Однако невозможно удалить расписание, если отсоединение не оставит его без заданий, если вызывающий объект не является владельцем расписания.
Дополнительные сведения о разрешениях этих ролей см. в разделе Предопределенные роли базы данных агента SQL Server.
Только члены роли sysadmin могут удалить расписание заданий, принадлежащее другому пользователю.
Примеры
А. Удаление расписания
В данном примере удаляется расписание NightlyJobs
. Если расписание присоединено к любому заданию, пример не удаляет расписание.
USE msdb;
GO
EXEC dbo.sp_delete_schedule
@schedule_name = N'NightlyJobs';
GO
B. Удаление расписания, присоединенного к заданию
В следующем примере расписание RunOnce
удаляется независимо от того, прикреплено ли оно к заданию.
USE msdb;
GO
EXEC dbo.sp_delete_schedule
@schedule_name = 'RunOnce',
@force_delete = 1;
GO