如何在SQL Server
Agent中使用SQL获取上次运行的作业详细信息,包括仅针对上次运行的作业的步骤详细信息(而不是作业结果),因为我想在应用程序中显示此信息
请帮助这个问题坚持很长时间
这是我下面一直在使用的代码,它带回了“作业历史”中所有“作业”的所有步骤,
但是,我只想查看 上次 运行作业的步骤
谢谢
USE msdb
Go
SELECT j.name JobName,h.step_name StepName,
CONVERT(CHAR(10), CAST(STR(h.run_date,8, 0) AS dateTIME), 111) RunDate,
STUFF(STUFF(RIGHT('000000' + CAST ( h.run_time AS VARCHAR(6 ) ) ,6),5,0,':'),3,0,':') RunTime,
h.run_duration StepDuration,
case h.run_status when 0 then 'Failed'
when 1 then 'Succeeded'
when 2 then 'Retry'
when 3 then 'Cancelled'
when 4 then 'In Progress'
end as ExecutionStatus,
h.message MessageGenerated
FROM sysjobhistory h
inner join sysjobs j
ON j.job_id = h.job_id
LEFT JOIN (
SELECT
[job_id]
, [run_date]
, [run_time]
, [run_status]
, [run_duration]
, [message]
, ROW_NUMBER() OVER (
PARTITION BY [job_id]
ORDER BY [run_date] DESC, [run_time] DESC
) AS RowNumber
FROM [msdb].[dbo].[sysjobhistory]
WHERE [step_id] = 0
) AS [sJOBH]
ON j.[job_id] = [sJOBH].[job_id]
AND [sJOBH].[RowNumber] = 1
where j.job_id = 'F04E5D3B-C873-448A-805C-C6309A92DAEC'
ORDER BY j.name, h.run_date, h.run_time desc
GO
希望这会有所帮助,
附加连接到msdb.dbo.sysjobactivity可以显示作业级别的开始/结束时间。使用此范围,您可以指定仅显示最近一次运行的作业步骤。
DECLARE @job_id UNIQUEIDENTIFIER
,@job_name VARCHAR(256)
SET @job_id = 'DF4C9555-5B24-4649-97CE-5708C53F762C'
SET @job_name = 'syspolicy_purge_history'
--search for job_id if none was provided
SELECT @job_id = COALESCE(@job_id,job_id)
FROM msdb.dbo.sysjobs
WHERE name = @job_name
SELECT t2.instance_id
,t1.name as JobName
,t2.step_id as StepID
,t2.step_name as StepName
,CONVERT(CHAR(10), CAST(STR(t2.run_date,8, 0) AS DATETIME), 111) as RunDate
,STUFF(STUFF(RIGHT('000000' + CAST ( t2.run_time AS VARCHAR(6 ) ) ,6),5,0,':'),3,0,':') as RunTime
,t2.run_duration
,CASE t2.run_status WHEN 0 THEN 'Failed'
WHEN 1 THEN 'Succeeded'
WHEN 2 THEN 'Retry'
WHEN 3 THEN 'Cancelled'
WHEN 4 THEN 'In Progress'
END as ExecutionStatus
,t2.message as MessageGenerated
FROM msdb.dbo.sysjobs t1
JOIN msdb.dbo.sysjobhistory t2
ON t1.job_id = t2.job_id
--Join to pull most recent job activity per job, not job step
JOIN (
SELECT TOP 1
t1.job_id
,t1.start_execution_date
,t1.stop_execution_date
FROM msdb.dbo.sysjobactivity t1
--If no job_id detected, return last run job
WHERE t1.job_id = COALESCE(@job_id,t1.job_id)
ORDER
BY last_executed_step_date DESC
) t3
--Filter on the most recent job_id
ON t1.job_id = t3.job_Id
--Filter out job steps that do not fall between start_execution_date and stop_execution_date
AND CONVERT(DATETIME, CONVERT(CHAR(8), t2.run_date, 112) + ' '
+ STUFF(STUFF(RIGHT('000000' + CONVERT(VARCHAR(8), t2.run_time), 6), 5, 0, ':'), 3, 0, ':'), 121)
BETWEEN t3.start_execution_date AND t3.stop_execution_date
编辑:在顶部添加了两个参数,@job_id和@job_name。如果未提供@job_id,则首先将尝试确定提供的@job_name的job_id,然后返回上一次运行的作业(不提供任何值)。
从以下行代码输入: 如何从订单id获取WooCommerce订单详细信息?
我正在使用Azure Data Factory运行我的databricks笔记本,它在运行时创建了作业集群,现在我想知道这些作业的状态,我的意思是它们是成功还是失败。那么我可以知道,我如何使用作业id或运行id来获得运行状态。 注意:我没有在我的databricks工作区中创建任何作业,我正在使用Azure Data Factory运行我的笔记本,它在运行时创建作业集群,并在该集群上运行该笔记本,
问题内容: 我想获取Python3中Exception的详细信息 例如…在foo.py中 和标准输出是… 我想从实例“ err”中获得有关此内置异常类的更多信息, 如 文件:foo.py 行:4 讯息:“ dict”对象没有属性“ encode” 就像这段代码的标准输出 这个 问题答案: 使用该模块可打印当前位置或给定异常的回溯。 您没有说明期望的输出,但是无论哪种模块,该模块很可能都能产生最适合
问题内容: 在WooCommerce中,从以下代码行: 如何从订单ID获取WooCommerce订单详细信息? 问题答案: 3.0版以上的WOOCOMMERCE订单 自Woocommerce大型主要更新3.0+以来,事情已经发生了很多变化: 对于 对象,无法像以前一样直接访问属性,并且会引发一些错误。 现在,对象实例需要使用new 以及 getter和setter方法。 此外,还有一些用于订购商品
问题内容: 我要获取exe / dll / sys文件的“文件描述”和“版权”,如右键单击文件并选择属性时,在“详细信息”选项卡中所示。 问题答案: 使用Windows API,您可以调用VerQueryValue以获取该信息。JNA有一个用于访问此API的类,称为Version。 这另一个问题有一些代码示例可以帮助您入门: 获取.exe的版本信息 这是一个读取产品名称的C代码示例,您可以将其转换
嗨,我尝试用InMemoryDao获取userDetailsService。但是我得不到,我试过@Autowired,@ Inject(userdailsservice,InMemoryDaoImpl,InMemoryManager...)但是我不能让它工作。 有公共类安全扩展WebSecurityC 只尝试了WebSecurityCon