共用方式為


sp_stop_job (Transact-SQL)

指示 SQL Server Agent 停止執行作業。

語法

sp_stop_job 
      [@job_name =] 'job_name'
    | [@job_id =] job_id 
    | [@originating_server =] 'master_server'
    | [@server_name =] 'target_server'

引數

  • [ @job_name =] 'job_name'
    這是要停止的作業名稱。job_namesysname,預設值是 NULL。
  • [ @job_id =] job_id
    這是要停止的作業識別碼。job_iduniqueidentifier,預設值是 NULL。
  • [ @originating_server =] 'master_server'
    主要伺服器的名稱。如果指定的話,會停止所有多伺服器作業。master_servernvarchar(128),預設值是 NULL。當在目標伺服器呼叫 sp_stop_job 時,才指定這個參數。

    ms182793.note(zh-tw,SQL.90).gif附註:
    您只能指定前三個參數的其中一個。
  • [ @server_name =] 'target_server'
    這是要在其中停止多伺服器作業之特定目標伺服器的名稱。target_servernvarchar(128),預設值是 NULL。當在多伺服器作業的主要伺服器呼叫 sp_stop_job 時,才指定這個參數。

傳回碼值

0 (成功) 或 1 (失敗)

結果集

備註

如果作業目前在執行 CmdExec 類型的步驟,會強制提前結束執行中的處理序 (如 MyProgram.exe)。提前結束可能造成無法預期的行為,例如,有保留開啟狀態的處理序在使用檔案。因此,只有在作業包含 CmdExec 類型的步驟時,才應該在極端情況下使用 sp_stop_job

權限

依預設,只有系統管理員 (sysadmin) 固定伺服器角色的成員,才能夠執行這個預存程序。其他使用者必須被授與 msdb 資料庫的下列其中一個 SQL Server Agent 固定資料庫角色。

  • SQLAgentUserRole
  • SQLAgentReaderRole
  • SQLAgentOperatorRole

如需有關這些角色權限的詳細資料,請參閱<SQL Server Agent 固定資料庫角色>。

SQLAgentUserRoleSQLAgentReaderRole 的成員只能停止他們自己的作業。SQLAgentOperatorRole 的成員可以停止所有本機作業,包括其他使用者擁有的那些作業在內。系統管理員 (sysadmin) 的成員可以停止所有本機作業和多伺服器作業。

範例

下列範例會停止名稱為 Weekly Sales Data Backup 的作業。

USE msdb ;
GO

EXEC dbo.sp_stop_job
    N'Weekly Sales Data Backup' ;
GO

請參閱

參考

sp_delete_job (Transact-SQL)
sp_help_job (Transact-SQL)
sp_start_job (Transact-SQL)
sp_update_job (Transact-SQL)
系統預存程序 (Transact-SQL)

說明及資訊

取得 SQL Server 2005 協助