2021-01-28 11:13:00 版本 : SQL Server代理执行计划作业的信息表dbo.sysjobhistory
作者: 周杨 于 2021年01月28日 发布在分类 / 计算机应用 / 数据库 / SQLSERVER 下,并于 2021年01月28日 编辑
 历史版本

备注 修改日期 修改人
格式调整 2021-01-28 11:13:00[当前版本] 系统管理员
CREAT 2021-01-28 11:12:26 系统管理员

转自:https://docs.microsoft.com/en-us/sql/relational-databases/system-tables/dbo-sysjobhistory-transact-sql?view=sql-server-ver15


在大多数情况下,仅在作业步骤完成后才更新数据,并且该表通常不包含当前正在进行的作业步骤的记录,但是在某些情况下,基础流程确实会提供有关正在进行的作业步骤的信息。

字段名 数据类型 字段含义
instance_id int 该行的唯一标识符。
job_id uniqueidentifier 作业ID
step_id int 作业中步骤的ID
step_name sysname 步骤名称。
sql_message_id int 如果作业失败,则返回任何SQL Server错误消息的 ID
sql_severity int 任何SQL Server错误的严重性。
message nvarchar(4000) SQL Server错误的文本(如果有)。
run_status int 作业执行的状态:0 = 失败 ,1 = 成功 ,2 = 重试 ,3 = 取消 ,4 = 进行中
run_date int 作业或步骤开始执行的日期。对于“进行中”历史记录,这是写入历史记录的日期/ 时间。
run_time int HHMMSS 格式开始作业或步骤的时间。
run_duration int HHMMSS 格式执行作业或步骤所花费的时间。
operator_id_emailed int 作业完成时通知的操作员ID
operator_id_netsent int 作业完成时通过消息通知的操作员的ID
operator_id_paged int 作业完成时,传呼机通知的操作员的ID
retries_attempted int 作业或步骤的重试次数。
server sysname 执行作业的服务器的名称。

以下Transact-SQL查询将把run_time和run_duration列转换为更用户友好的格式。在SQL Server Management Studio中执行脚本。


SET NOCOUNT ON;


SELECT sj.name,
sh.run_date,
sh.step_name,
STUFF(STUFF(RIGHT(REPLICATE('0', 6) +  CAST(sh.run_time as varchar(6)), 6), 3, 0, ':'), 6, 0, ':') 'run_time',
STUFF(STUFF(STUFF(RIGHT(REPLICATE('0', 8) + CAST(sh.run_duration as varchar(8)), 8), 3, 0, ':'), 6, 0, ':'), 9, 0, ':') 'run_duration (DD:HH:MM:SS)  '
FROM msdb.dbo.sysjobs sj
JOIN msdb.dbo.sysjobhistory sh
ON sj.job_id = sh.job_id


历史版本-目录  [回到顶端]
    知识分享平台 -V 5.1.4 -大信谛威