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為 uniqueidentifier,預設值為 NULL

[ @job_name = ] N'job_name'

要從中移除排程之作業的名稱。 @job_name為 sysname,預設值為 NULL

注意

必須指定@job_id@job_name,但無法指定兩者。

[ @schedule_id = ] schedule_id

要從作業中移除之排程的排程標識碼。 @schedule_id為 int,預設值為 NULL

[ @schedule_name = ] N'schedule_name'

要從作業中移除之排程的名稱。 @schedule_name為 sysname,預設值為 NULL

注意

必須指定@schedule_id@schedule_name,但無法指定兩者。

[ @delete_unused_schedule = ] delete_unused_schedule

指定是否要刪除未使用的作業排程。 @delete_unused_schedule為 bit,預設值為 0

  • 如果設定為 0,則會保留所有排程,即使沒有任何作業參考它們也一樣。
  • 如果設定為 1,則如果沒有作業參考這些排程,則會刪除未使用的作業排程。

[ @automatic_post = ] automatic_post

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

傳回碼值

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

結果集

None

權限

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

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

  • SQLAgentUserRole
  • SQLAgentReaderRole
  • SQLAgentOperatorRole

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

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

只有 sysadmin 的成員可以使用這個預存程式來編輯其他用戶擁有之作業的屬性。

SQL Server 會檢查使用者是否擁有排程。 只有系統管理員固定伺服器角色的成員才能中斷與其他使用者所擁有的作業的排程中斷連結。

範例

下列範例會移除排程與BackupDatabase作業之間的NightlyJobs關聯。

USE msdb;
GO

EXEC dbo.sp_detach_schedule
    @job_name = 'BackupDatabase',
    @schedule_name = 'NightlyJobs';
GO