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_name 是 sysname,預設值是 NULL。
- [ @job_id =] job_id
這是要停止的作業識別碼。job_id 是 uniqueidentifier,預設值是 NULL。
[ @originating_server =] 'master_server'
主要伺服器的名稱。如果指定的話,會停止所有多伺服器作業。master_server 是 nvarchar(128),預設值是 NULL。當在目標伺服器呼叫 sp_stop_job 時,才指定這個參數。附註: 您只能指定前三個參數的其中一個。
- [ @server_name =] 'target_server'
這是要在其中停止多伺服器作業之特定目標伺服器的名稱。target_server 是 nvarchar(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 固定資料庫角色>。
SQLAgentUserRole 和 SQLAgentReaderRole 的成員只能停止他們自己的作業。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)