使用 TSQL 获取所有作业和作业步骤的作业步骤运行

Joa*_*loo 3 sql-server jobs

我想知道是否有一种简单的方法可以使用 TSQL 代码检查每个作业步骤的“运行方式”值,而不是打开服务器上的每个作业和每个单独的步骤?我不知道从哪里获取这些数据,我已经在 MSDB 中搜索过,但在 sysjobs 和相关表中找不到任何内容?SQL 必须将该值存储在某处。问题是在哪里?

Jon*_*ite 6

这应该会让您关闭,如果 ProxyName 为 NULL,则它正在使用 SQL Server 代理凭据。

USE msdb

SELECT J.job_id
    , J.name
    , S.step_name
    , S.step_id 
    , P.name AS ProxyName
    , SP.name AS CredentialUserName
    , SP.type_desc AS CredentialUserType
FROM msdb.dbo.sysjobs J
    INNER JOIN msdb.dbo.sysjobsteps S ON S.job_id = J.job_id 
    LEFT OUTER JOIN msdb.dbo.sysproxies P ON P.proxy_id = S.proxy_id
    LEFT OUTER JOIN sys.server_principals SP ON SP.sid = P.user_sid
Run Code Online (Sandbox Code Playgroud)