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_delete0, хранимая процедура завершается ошибкой, если расписание присоединено к заданию.
  • Если @force_delete1, расписание удаляется независимо от того, присоединено ли расписание к заданию.

[ @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