【原创】SQL SERVER 查询Job作业基本信息及执行情况

查询作业基本信息和作业执行情况

SELECT[jop].[job_id] AS '作业唯一标识符',[jop].[ name ] AS '作业名称',[dp].[ name ] AS '作业创建者',[cat].[ name ] AS '作业类别',[jop].[description] AS '作业描述', CASE [jop].[enabled]WHEN 1 THEN ''WHEN 0 THEN ''END AS '是否启用',[jop].[date_created] AS '作业创建日期',[jop].[date_modified] AS '作业最后修改日期',[sv].[ name ] AS '作业运行服务器名称',[step].[step_id] AS '作业起始步骤',[step].[step_name] AS '步骤名称', CASEWHEN [sch].[schedule_uid] IS NULL THEN ''ELSE ''END AS '是否分布式作业',[sch].[schedule_uid] AS '作业计划的唯一标识符',[sch].[ name ] AS '作业计划的用户定义名称', CASE [jop].[delete_level]WHEN 0 THEN '不删除'WHEN 1 THEN '成功后删除'WHEN 2 THEN '失败后删除'WHEN 3 THEN '完成后删除'END AS '作业完成删除选项'
FROM [msdb].[dbo].[sysjobs] AS [jop]
LEFT JOIN [msdb].[sys].[servers] AS [sv]ON [jop].[originating_server_id] = [sv].[server_id]
LEFT JOIN [msdb].[dbo].[syscategories] AS [cat]ON [jop].[category_id] = [cat].[category_id]
LEFT JOIN [msdb].[dbo].[sysjobsteps] AS [step]ON [jop].[job_id] = [step].[job_id]AND [jop].[start_step_id] = [step].[step_id]
LEFT JOIN [msdb].[sys].[database_principals] AS [dp]ON [jop].[owner_sid] = [dp].[sid]
LEFT JOIN [msdb].[dbo].[sysjobschedules] AS [jsch]ON [jop].[job_id] = [jsch].[job_id]
LEFT JOIN [msdb].[dbo].[sysschedules] AS [sch]ON [jsch].[schedule_id] = [sch].[schedule_id]
ORDER BY [jop].[ name ]

作业最后执行情况

SELECT[job].[job_id] AS '作业唯一标示符',[job].[ name ] AS '作业名称', CASE WHEN [jobh].[run_date] IS NULLOR [jobh].[run_time] IS NULL THEN NULLELSE CAST ( CAST ([jobh].[run_date] AS CHAR ( 8 )) + ' '+ STUFF(STUFF( RIGHT ( '000000'+ CAST ([jobh].[run_time] AS VARCHAR ( 6 )), 6 ),3 , 0 , ':' ), 6 , 0 , ':' ) AS DATETIME)END AS '最后执行时间', CASE [jobh].[run_status]WHEN 0 THEN '失败'WHEN 1 THEN '成功'WHEN 2 THEN '重试'WHEN 3 THEN '取消'WHEN 4 THEN '正在运行'END AS '最后执行状态',STUFF(STUFF( RIGHT ( '000000' + CAST ([jobh].[run_duration] AS VARCHAR ( 6 )), 6 ),3 , 0 , ':' ), 6 , 0 , ':' ) AS '最后运行持续时间',[jobh].[message] AS '最后运行状态信息', CASE [jsch].[NextRunDate]WHEN 0 THEN NULLELSE CAST ( CAST ([jsch].[NextRunDate] AS CHAR ( 8 )) + ' '+ STUFF(STUFF( RIGHT ( '000000'+ CAST ([jsch].[NextRunTime] AS VARCHAR ( 6 )),6 ), 3 , 0 , ':' ), 6 , 0 , ':' ) AS DATETIME)END AS '下次运行时间'
FROM [msdb].[dbo].[sysjobs] AS [job]
LEFT JOIN (SELECT[job_id], MIN ([next_run_date]) AS [NextRunDate], MIN ([next_run_time]) AS [NextRunTime]FROM [msdb].[dbo].[sysjobschedules]GROUP BY [job_id]) AS [jsch]ON [job].[job_id] = [jsch].[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 RowNumberFROM [msdb].[dbo].[sysjobhistory]WHERE [step_id] = 0) AS [jobh]ON [job].[job_id] = [jobh].[job_id]AND [jobh].[RowNumber] = 1
ORDER BY [job].[ name ]

查看每个作业步骤基本信息

SELECT[job].[job_id] AS '作业唯一标识符',[job].[name] AS '作业名称',[jstep].[step_uid] AS '步骤唯一标识符',[jstep].[step_id] AS '步骤编号',[jstep].[step_name] AS '步骤名称',CASE [jstep].[subsystem]WHEN 'ActiveScripting' THEN 'ActiveX Script'WHEN 'CmdExec' THEN 'Operating system (CmdExec)'WHEN 'PowerShell' THEN 'PowerShell'WHEN 'Distribution' THEN 'Replication Distributor'WHEN 'Merge' THEN 'Replication Merge'WHEN 'QueueReader' THEN 'Replication Queue Reader'WHEN 'Snapshot' THEN 'Replication Snapshot'WHEN 'LogReader' THEN 'Replication Transaction-Log Reader'WHEN 'ANALYSISCOMMAND' THEN 'SQL Server Analysis Services Command'WHEN 'ANALYSISQUERY' THEN 'SQL Server Analysis Services Query'WHEN 'SSIS' THEN 'SQL Server Integration Services Package'WHEN 'TSQL' THEN 'Transact-SQL script (T-SQL)'ELSE [jstep].[subsystem]END AS '作业步骤类型',CASEWHEN [px].[name] IS NULL THEN 'SQL SERVER代理服务账户'ELSE [px].[name]END AS '步骤运行账户',[jstep].[database_name] AS '执行数据库名',[jstep].[command] AS '执行命令',CASE [jstep].[on_success_action]WHEN 1 THEN '退出报表成功的作业'WHEN 2 THEN '退出报告失败的作业'WHEN 3 THEN '转到下一步'WHEN 4THEN '转到步骤: '+ QUOTENAME(CAST([jstep].[on_success_step_id] AS VARCHAR(3))) + ' '+ [sOSSTP].[step_name]END AS '执行成功后操作',[jstep].[retry_attempts] AS '失败时的重试次数',[jstep].[retry_interval] AS '重试间的等待时间(分钟)',CASE [jstep].[on_fail_action]WHEN 1 THEN '退出报告成功的作业'WHEN 2 THEN '退出报告失败的作业'WHEN 3 THEN '转到下一步'WHEN 4THEN '转到步骤: '+ QUOTENAME(CAST([jstep].[on_fail_step_id] AS VARCHAR(3))) + ' '+ [sOFSTP].[step_name]END AS '执行失败后操作'
FROM [msdb].[dbo].[sysjobsteps] AS [jstep]
INNER JOIN [msdb].[dbo].[sysjobs] AS [job]ON [jstep].[job_id] = [job].[job_id]
LEFT JOIN [msdb].[dbo].[sysjobsteps] AS [sOSSTP]ON [jstep].[job_id] = [sOSSTP].[job_id]AND [jstep].[on_success_step_id] = [sOSSTP].[step_id]
LEFT JOIN [msdb].[dbo].[sysjobsteps] AS [sOFSTP]ON [jstep].[job_id] = [sOFSTP].[job_id]AND [jstep].[on_fail_step_id] = [sOFSTP].[step_id]
LEFT JOIN [msdb].[dbo].[sysproxies] AS [px]--代理账户信息ON [jstep].[proxy_id] = [px].[proxy_id]
ORDER BY [job].[name], [jstep].[step_id]

 

查看每个作业步骤执行情况

SELECT[job].[job_id] AS '作业唯一标识符',[job].[name] AS '作业名称',[jstep].[step_uid] AS '作业步骤唯一标识符',[jstep].[step_id] AS '步骤编号',[jstep].[step_name] AS '步骤名称',CASE [jstep].[last_run_outcome]WHEN 0 THEN '失败'WHEN 1 THEN '成功'WHEN 2 THEN '重试'WHEN 3 THEN '取消'WHEN 5 THEN '未知'END AS '上次运行状态',STUFF(STUFF(RIGHT('000000'+ CAST([jstep].[last_run_duration] AS VARCHAR(6)), 6), 3,0, ':'), 6, 0, ':') AS [LastRunDuration (HH:MM:SS)],[jstep].[last_run_retries] AS '上次运行重复执行次数',CASE [jstep].[last_run_date]WHEN 0 THEN NULLELSE CAST(CAST([jstep].[last_run_date] AS CHAR(8)) + ' '+ STUFF(STUFF(RIGHT('000000'+ CAST([jstep].[last_run_time] AS VARCHAR(6)),6), 3, 0, ':'), 6, 0, ':') AS DATETIME)END AS '上次运行时间'
FROM [msdb].[dbo].[sysjobsteps] AS [jstep]
INNER JOIN [msdb].[dbo].[sysjobs] AS [job]ON [jstep].[job_id] = [job].[job_id]
ORDER BY [job].[name], [jstep].[step_id]

转载于:https://www.cnblogs.com/xiongnanbin/p/b887dfff2957d1aee15f1d94e9957473.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/294881.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Oracle %rowtype的用法

表示该类型为行数据类型,存储的是一行数据,一行数据里可以有多列,类似于表里的一行数据,也可以是游标里的一行数据,如:vs_row1 表%rowtype;vs_row2 游标%rowtype;

计算机游戏50关,YELLOW游戏全50关攻略

yellow游戏是一款比较休闲的游戏作品,这款游戏中需要通过变换将屏幕全部调整成黄色,虽然操作不难,但比较考验思维能力,下面是全50关通关攻略,大家可以参考参考。【注:以下为攻略,不想看的不用点…

Android之判断网络状态(网络的连接,改变,和判断2G/3G/4G)

现在app大多都需要从网络上获得数据。所以访问网络是在所难免。但是再访问网络之前,我们应该先做一下网络的状态判断。其实在访问网络之前我们要做一些状态判断,对应一些状态判断来做处理,并不是直接使用Http访问网络即可。很多人在开发就经常…

python达梦数据库_Python 编程可以访问达梦数据吗?

可以,但官方只给了python2.7版本的包,python3目前无法使用,此外达梦自己的linux客户端只支持redhat或者centos。请首先在系统安装达梦客户端,下载地址如下:具体流程如下:Linux下DM7与Python的适配方法1.概述…

2021年将迎接你的是什么?

1 2021年迎接你的是...(素材来源网络,侵删)▼2 原来帅真的可以当饭吃(素材来源网络,侵删)▼3 我的芒果千层到了吗?(素材来源网络,侵删)▼4 这个岗位的上一…

log4j:WARN No appenders could be found for logger

2019独角兽企业重金招聘Python工程师标准>>> 提示这个错误是因为log4j的环境没有配置的原因,在src目录下新建一个log4j.properties的文件,黏贴如下内容即可解决。 # Configure logging for testing: optionally with log file log4j.rootLog…

推荐Mongodb GUI 可视化管理工具-NoSQLBooster

工欲善其事,必先利其器。虽然 MongoDB 已经提供了默认的管理工具(CLI)Shell 命令行,但是每次登录时都需要做身份认证,切换数据库等等一系列繁琐的操作,时间久了还是挺闹心的。实际开发中,还是会…

使用string.Format需要注意的一个性能问题

今天,我在写C#代码时,突然发现一个最熟悉的陌生人 —— string.Format。在写C#代码的日子里,与它朝夕相伴,却没有真正去了解它。只知道在字符串比较多时,用它比用加号进行字符串连接效率更高(当然也更方便&…

hdu 3480 斜率dp

思路&#xff1a;很普通的斜率dp #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #define Maxn 10010 #define LL int using namespace std; LL dp[Maxn][2],num[Maxn]; int que[Maxn*10]; inline LL getleft(int x,int …

angular的html引入js,在AngularJS中的文件夹中加载JavaScript和CSS文件

AngularJS不支持你想要的东西,但是你可以看看Grunt或Gulp等构建工具,它们可以让你“构建”你的应用程序.在您的情况下,这些工具可以查找CSS文件并将它们连接成一个文件.这样,如果您添加新模块,则index.html不必更改.我个人使用GulpJS,因为它看起来要快得多.我发现配置更容易&am…

Android之android.graphics.drawable.Drawable.Callback回调接口

[java] view plaincopy /*如果你想实现一个扩展子Drawable的动画drawable&#xff0c;那么你可以通过setCallBack(android.graphics.drawable.Drawable.Callback)来把你实现的该接口注册到动画drawable *中。可以实现对动画的调度和执行 */ public static interface Call…

为什么说,每个人都应该多读些书?

全世界只有3.14 % 的人关注了爆炸吧知识知乎上有个高赞问题&#xff1a;有哪些值得长期坚持下去就能改变人生的好习惯&#xff1f;其中最高频的回答是读书。随着经历和阅历的增加&#xff0c;越来越多的人清醒的认识到&#xff1a;读书不再是学生时代的事&#xff0c;而是一生的…

.Net Crank性能测试入门

Crank 是微软新出的一个性能测试框架&#xff0c;集成了多种基准测试工具&#xff0c;如bombardier、wrk等。Crank通过统一的配置&#xff0c;可以转换成不同基准测试工具命令进行测试。可参考Bombardier Job实现。安装Crank运行如下两个命令分别安装Crank的cli(Controller)和A…

兄弟机cnc系统面板图解_FANUC软操作面板的应用介绍,真的太详细了

FANUC软操作面板介绍&#xff1a;FANUC软操作面板功能是CNC系统软件的一项功能&#xff0c;可以利用MDI键盘上的光标移动按键和轴移动方向按键 代替机床操作面板的按钮&#xff0c;结合显示器的显示&#xff0c;实现与操作面板同样的功能。在CNC系统安装到机床上之前进行调试试…

个人项目耗时对比记录表

PSP2.1Personal Software Process StagesTime(%)Planning计划 Estimate 估计这个任务需要多少时间 Development开发 Analysis 需求分析 Design Spec 生成设计文档 Design Review 设计复审&#xff08;和同事审核设计文档&#xff09; Coding Standard 代码规范&#xff08…

C# 中静态调用C++dll 和C# 中动态调用C++dll

在最近的项目中&#xff0c;牵涉到项目源代码保密问题&#xff0c;由于代码是C#写的&#xff0c;容易被反编译&#xff0c;因此决定抽取核心算法部分使用C编写&#xff0c;C到目前为止好像还不能被很好的反编译&#xff0c;当然如果你是反汇编高手的话&#xff0c;也许还是有可…

Unity中使用RequireComponent,没有添加上组件

using UnityEngine; using System.Collections;[RequireComponent(typeof(MeshFilter), typeof(MeshRenderer))] public class starTest : MonoBehaviour {private Mesh mesh;void Start(){}void Update(){} }代码是这么写的但是编译完后发现没增加组件&#xff0c; 为啥呢………

html写出日出,描写日出优美句子

太阳升起来了&#xff0c;伴着牧歌跳出了地平线&#xff0c;那万道霞光透过云隙照在一望无垠的大草原上&#xff0c;为这片宽广的原野铺上了一层金辉。描写日出的优美句子应该怎么写?描写日出的优美句子1、光芒四射&#xff0c;把万物都唤醒了&#xff1a;小草睁开了它那朦胧的…

Android之封装支付宝支付

在做Android支付的时候肯定会用到支付宝支付&#xff0c; 根据官方给出的demo做起来非常费劲&#xff0c;所以我们需要一次简单的封装。 封装的代码也很简单&#xff0c;就是将官网给的demo提取出一个类来方便使用。 /*** 支付宝支付* * author lenovo*/ public class Alipay {…

有生之年必看!千古第一奇书《山海经》到底是怎样的一本书?

▲点击查看提到《山海经》&#xff0c;大家应该都耳熟能详。作为一部富有神话色彩的千古奇书&#xff0c;它记载了各种脍炙人口的神话传说&#xff0c;像女娲造人、夸父逐日、羿射九日、精卫填海、大禹治水……都是从这里诞生的。除了神话传说&#xff0c;它内容之博大&#xf…