none
怎么判断一个作业是否正在运行? RRS feed

  • 问题

  • 怎么判断一个作业的运行状态:正在运行 or 已停止。当我停止一个作业Cpy_full时,报告以下错误:

    标题: Microsoft.SqlServer.Smo
    ------------------------------
    停止 对于 Job“Cpy_full”失败。
    有关帮助信息,请单击: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=9.00.1399.00&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates.FailedOperationExceptionText&EvtID=停止+Job&LinkId=20476
    ------------------------------
    其他信息:

    执行 Transact-SQL 语句或批处理时发生了异常。 (Microsoft.SqlServer.ConnectionInfo)
    ------------------------------
    SQLServerAgent 错误: 停止作业 Cpy_full 的请求(来自 用户 DSG-84FF16\Administrator)被拒绝,因为当前没有运行该作业. (Microsoft SQL Server,错误: 22022)

    我们看到提示信息说:“当前没有运行该作业”,但是我通过以下语句查询时,却看到其Enabled状态为"1",
    SELECT JOB_ID, NAME, ENABLED, DESCRIPTION FROM MSDB..SYSJOBS

    那么我该怎么判断一个作业的运行状态呢?

    2010年9月15日 8:02

答案

  • master.dbo.xp_sqlagent_enum_jobs你查一下這個系統存儲過程可以獲得你想要的JOB狀態的信息
    • 已标记为答案 老笨猪 2010年9月16日 8:09
    2010年9月15日 9:03
  • Enabled 的意思是这个Job 是可以被执行的,但并不表示它正在执行。

    有很多方法检查 Job 的状态:

    1) msdb.dbo.sp_help_job, 其中有 Current_execution_status 列指示了Job 当前的状态;

    2) 在SSMS 中直接打开 SQL Server Agent -> Jobs -> Job Activity Monitor 看;

    3) 可以使用楼上的方法,但是要加参数,如:

     Master.dbo.xp_sqlagent_enum_jobs 1, 'sa'

     

     

    • 已标记为答案 老笨猪 2010年9月16日 8:09
    2010年9月15日 10:14
    版主

全部回复

  • master.dbo.xp_sqlagent_enum_jobs你查一下這個系統存儲過程可以獲得你想要的JOB狀態的信息
    • 已标记为答案 老笨猪 2010年9月16日 8:09
    2010年9月15日 9:03
  • Enabled 的意思是这个Job 是可以被执行的,但并不表示它正在执行。

    有很多方法检查 Job 的状态:

    1) msdb.dbo.sp_help_job, 其中有 Current_execution_status 列指示了Job 当前的状态;

    2) 在SSMS 中直接打开 SQL Server Agent -> Jobs -> Job Activity Monitor 看;

    3) 可以使用楼上的方法,但是要加参数,如:

     Master.dbo.xp_sqlagent_enum_jobs 1, 'sa'

     

     

    • 已标记为答案 老笨猪 2010年9月16日 8:09
    2010年9月15日 10:14
    版主