> 数据库 > SQL Server 2005 >

使用T-SQL查看SQL Server代理作业的历史记录

通常,我们比较习惯于通过SSMS来查看SQL Server代理作业的历史记录,这里将简单地介绍如何通过T-SQL查看历史记录。

通过SSMS:如下图,依次展开SQL Server代理-->作业-->具体的作业名称,然后右击并点击“查看历史记录”,即可看到对应作业的历史记录。

 

通过T-SQL:

[sql] view plain copy
 
  1. SELECT      [JobName]   = JOB.name,  
  2.             [Step]      = HIST.step_id,  
  3.             [StepName]  = HIST.step_name,  
  4.             [Message]   = HIST.message,  
  5.             [Status]    = CASE WHEN HIST.run_status = 0 THEN 'Failed'  
  6.             WHEN HIST.run_status = 1 THEN 'Succeeded'  
  7.             WHEN HIST.run_status = 2 THEN 'Retry'  
  8.             WHEN HIST.run_status = 3 THEN 'Canceled'  
  9.             END,  
  10.             [RunDate]   = HIST.run_date,  
  11.             [RunTime]   = HIST.run_time,  
  12.             [Duration]  = HIST.run_duration  
  13. FROM        sysjobs JOB  
  14. INNER JOIN  sysjobhistory HIST ON HIST.job_id = JOB.job_id    
  15. WHERE HIST.run_date>=CONVERT(CHAR(8),GETDATE()-1,112) AND HIST.run_status<>1   
  16. /* WHERE    JOB.name = 'Job_Name' */  
  17. ORDER BY    HIST.run_date, HIST.run_time   

 

 

通过T-SQL,我们可以很轻松地收集相关Job的历史运行情况,对于失败的Job还可以进一步给出DBA提醒。



(责任编辑:IT)