sp_delete_job (Transact-SQL)

適用於:SQL ServerAzure SQL 受控執行個體

從 SQL Server Agent 服務刪除作業。

Transact-SQL 語法慣例

語法

sp_delete_job
    [ [ @job_id = ] 'job_id' ]
    [ , [ @job_name = ] N'job_name' ]
    [ , [ @originating_server = ] N'originating_server' ]
    [ , [ @delete_history = ] delete_history ]
    [ , [ @delete_unused_schedule = ] delete_unused_schedule ]
[ ; ]

引數

[ @job_id = ] 'job_id'

要刪除之作業的識別碼。 @job_id為 uniqueidentifier,預設值為 NULL

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

[ @job_name = ] N'job_name'

要刪除的作業名稱。 @job_name為 sysname,預設值為 NULL

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

[ @originating_server = ] N'originating_server'

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

[ @delete_history = ] delete_history

指定是否要刪除作業的歷程記錄。 @delete_history為 bit,預設值為 1

  • 當@delete_history1,會刪除作業的作業歷程記錄。
  • 當 @delete_history0,不會刪除作業歷程記錄。

刪除作業且不會刪除歷程記錄時,作業的歷程記錄資訊不會顯示在 SQL Server Agent 圖形使用者介面作業歷程記錄中,但資訊仍位於 sysjobhistory 資料庫中的數據表中 msdb

[ @delete_unused_schedule = ] delete_unused_schedule

指定如果未附加至任何其他作業,是否要刪除附加至此作業的排程。 @delete_unused_schedule為 bit,預設值為 1

  • 當 @delete_unused_schedule1,如果沒有其他作業參考排程,則會刪除附加至此作業的排程。
  • 當@delete_unused_schedule0,不會刪除排程。

傳回碼值

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

結果集

無。

備註

@originating_server自變數保留供內部使用。

@delete_unused_schedule自變數會自動移除未附加至任何作業的排程,以提供與舊版 SQL Server 的回溯相容性。 此參數預設為回溯相容行為。 若要保留未附加至作業的排程,您必須提供值 0 做為 @delete_unused_schedule 自變數。

SQL Server Management Studio 提供易用的作業管理圖形介面,是建立及管理作業基礎結構的建議方式。

此預存程式無法刪除維護計劃,而且無法刪除屬於維護計劃一部分的工作。 請改用 SQL Server Management Studio 刪除維護計劃。

此預存程式會與 Azure SQL 資料庫 的 Azure Elastic Jobs 服務類似物件共用 的名稱sp_delete_job。 如需彈性作業版本的相關信息,請參閱 jobs.sp_delete_job (Azure Elastic Jobs) (Transact-SQL)

權限

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

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

  • SQLAgentUserRole
  • SQLAgentReaderRole
  • SQLAgentOperatorRole

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

系統管理員固定伺服器角色的成員可以執行sp_delete_job以刪除任何作業。 不是系統管理員固定伺服器角色成員的使用者只能刪除該使用者所擁有的作業。

範例

下列範例會移除工作 NightlyBackups

USE msdb;
GO

EXEC sp_delete_job
    @job_name = N'NightlyBackups';
GO