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為 bit,預設值為 0

  • 當@force_delete0,如果排程附加至作業,預存程式就會失敗。
  • 當@force_delete1,不論排程是否附加至作業,都會刪除排程。

[ @automatic_post = ] automatic_post

僅供參考之用。 不支援。 我們無法保證未來的相容性。

傳回碼值

0 (成功)或 1 (失敗)。

結果集

無。

備註

根據預設,如果排程附加至作業,則無法刪除排程。 若要刪除附加至作業的排程,請為 @force_delete指定的值。1 刪除排程並不會停止目前正在執行的作業。

權限

此預存程式是由 db_owner 角色所擁有。 您可以授與 EXECUTE 任何用戶的許可權,但這些許可權可能會在 SQL Server 升級期間覆寫。

其他用戶必須在資料庫中獲得下列其中一個 SQL Server Agent 固定資料庫角色 msdb

  • SQLAgentUserRole
  • SQLAgentReaderRole
  • SQLAgentOperatorRole

作業擁有者可以將作業附加至排程,並將作業與排程中斷連結,而不需要是排程擁有者。 不過,如果卸離將不讓排程離開,除非呼叫者是排程擁有者,否則無法刪除排程。

如需這些角色權限的詳細資訊,請參閱 SQL Server Agent 固定資料庫角色

只有系統管理員角色的成員可以刪除其他用戶所擁有的作業排程。

範例

A. 刪除排程

下列範例會刪除排程 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