• 相关软件
    >sp_stop_job 创建者:webmaster 更新时间:2006-02-16 15:51

    命令 SQLServerAgent 停止执行作业。



    语法


    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(30),默认设置为 NULL。只有在目标服务器上调用 sp_stop_job 时才指定该参数。



    说明  只能指定前三个参数之一。



    [@server_name =] 'target_server'



    是要停止多服务器作业的特定目标服务器名。target_server 的数据类型是 nvarchar(30),默认设置为 NULL。只有在主服务器上对多服务器作业调用 sp_stop_job 时才指定该参数。



    返回代码值


    0(成功)或 1(失败)



    结果集




    注释


    如果作业当前正在执行 CmdExec 类型的步骤,则将强行过早结束正在运行的进程(如 MyProgram.exe)。过早结束会导致不可预知的行为,如进程正在使用的文件保持打开。因此,如果作业包含 CmdExec 类型的步骤,应该只在没有办法的情况下才使用 sp_stop_job



    权限


    执行权限默认授予 msdb 数据库中的 public 角色。可执行此存储过程而且是 sysadmin 固定角色成员的用户可以停止任何作业。不是 sysadmin 角色成员的用户使用 sp_stop_job 只能停止他/她所拥有的作业。



    sysadmin 固定服务器角色成员的用户唤醒调用 sp_stop_job 时,sp_stop_job 将在 SQL Server 服务正在其中运行的安全上下文中执行。当用户不是 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 用户的安全上下文中执行。



    示例


    下例停止名为 Archive Tables 的作业。



    USE msdb
    EXEC sp_stop_job @job_name = 'Archive Tables'
    相关文章
    本页查看次数: