命令 SQLServerAgent 停止執(zhí)行作業(yè)。
sp_stop_job [@job_name =] 'job_name'
| [@job_id =] job_id
| [@originating_server =] 'master_server'
| [@server_name =] 'target_server'
[@job_name =] 'job_name'
是要停止的作業(yè)名。job_name 的數(shù)據(jù)類型是 sysname,默認設置為 NULL。
[@job_id =] job_id
是要停止的作業(yè)標識號。job_id 的數(shù)據(jù)類型是 uniqueidentifier,默認設置為 NULL。
[@originating_server =] 'master_server'
是主服務器名。如果指定,則停止所有的多服務器作業(yè)。master_server 的數(shù)據(jù)類型是 nvarchar(30),默認設置為 NULL。只有在目標服務器上調用 sp_stop_job 時才指定該參數(shù)。
說明 只能指定前三個參數(shù)之一。
[@server_name =] 'target_server'
是要停止多服務器作業(yè)的特定目標服務器名。target_server 的數(shù)據(jù)類型是 nvarchar(30),默認設置為 NULL。只有在主服務器上對多服務器作業(yè)調用 sp_stop_job 時才指定該參數(shù)。
0(成功)或 1(失?。?/P>
無
如果作業(yè)當前正在執(zhí)行 CmdExec 類型的步驟,則將強行過早結束正在運行的進程(如 MyProgram.exe)。過早結束會導致不可預知的行為,如進程正在使用的文件保持打開。因此,如果作業(yè)包含 CmdExec 類型的步驟,應該只在沒有辦法的情況下才使用 sp_stop_job。
執(zhí)行權限默認授予 msdb 數(shù)據(jù)庫中的 public 角色??蓤?zhí)行此存儲過程而且是 sysadmin 固定角色成員的用戶可以停止任何作業(yè)。不是 sysadmin 角色成員的用戶使用 sp_stop_job 只能停止他/她所擁有的作業(yè)。
當 sysadmin 固定服務器角色成員的用戶喚醒調用 sp_stop_job 時,sp_stop_job 將在 SQL Server 服務正在其中運行的安全上下文中執(zhí)行。當用戶不是 sysadmin 組的成員時,sp_stop_job 將模擬 SQL Server 代理代理帳戶,而該帳戶是通過 xp_sqlagent_proxy_account 指定的。如果代理帳戶不可用,則 sp_stop_job 將失敗。只有 Microsoft® Windows NT® 4.0 和 Windows 2000 有上述情況。在 Windows 9.x 上沒有模擬,而且 sp_stop_job 總是在啟動 SQL Server 的 Windows 9.x 用戶的安全上下文中執(zhí)行。
下例停止名為 Archive Tables 的作業(yè)。
USE msdb
EXEC sp_stop_job @job_name = 'Archive Tables'
相關文章