【发布时间】:2011-07-27 02:25:37
【问题描述】:
我正在使用下面的脚本来获取代理作业的 Job_state。
当作业运行时它返回 1 作为 job_state => 这很好。
但对于所有其他情况(失败/成功/取消),它返回 job_status 4(这意味着它的空闲)
如何获得准确的 job_state,以便确定它是失败/成功还是取消。
到目前为止我的脚本:
DECLARE @xp_results TABLE
(
job_id UNIQUEIDENTIFIER NOT NULL ,
last_run_date INT NOT NULL ,
last_run_time INT NOT NULL ,
next_run_date INT NOT NULL ,
next_run_time INT NOT NULL ,
next_run_schedule_id INT NOT NULL ,
requested_to_run INT NOT NULL ,
request_source INT NOT NULL ,
request_source_id SYSNAME COLLATE database_default NULL ,
running INT NOT NULL ,
current_step INT NOT NULL ,
current_retry_attempt INT NOT NULL ,
job_state INT NOT NULL
)
SET NOCOUNT ON
INSERT INTO @xp_results
EXEC master.dbo.xp_sqlagent_enum_jobs 1, ''
DECLARE @jobs TABLE
(
rownum INT IDENTITY(1, 1)
PRIMARY KEY
NOT NULL ,
job_id UNIQUEIDENTIFIER NOT NULL
)
SELECT name,job_state
FROM @xp_results rj
INNER JOIN msdb.dbo.sysjobs sj ON sj.job_id = rj.job_id
【问题讨论】: