积极答复者
怎么判断一个作业是否正在运行?

问题
-
怎么判断一个作业的运行状态:正在运行 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那么我该怎么判断一个作业的运行状态呢?
答案
-
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
全部回复
-
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