sp_delete_schedule (Transact-SQL)
適用於:SQL Server
刪除排程。
語法
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_delete為
0
時,如果排程附加至作業,預存程式就會失敗。 - 當@force_delete為
1
時,不論排程是否附加至作業,都會刪除排程。
[ @automatic_post = ] automatic_post
僅供參考之用。 不支援。 我們無法保證未來的相容性。
傳回碼值
0
(成功) 或 1
(失敗)。
結果集
無。
備註
根據預設,如果排程附加至作業,則無法刪除排程。 若要刪除附加至作業的排程,請為 @force_delete指定的值。1
刪除排程並不會停止目前正在執行的作業。
權限
您可以授與此 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