查找SQL作业中每个作业步骤的“运行方式”值

时间:2015-02-09 23:53:14

标签: sql sql-server-2008

我正在努力寻找' Run As'在我的实例中的所有作业的每个作业步骤中使用的值。我能够使用以下查询找到作业的所有者,但不能找到上述值。请帮忙

USE msdb

SELECT *
FROM msdb.dbo.sysjobs_view J
LEFT JOIN master.dbo.syslogins L
    ON J.owner_sid = L.sid
LEFT JOIN [msdb].[dbo].[syscategories] AS [sCAT]
    ON j.[category_id] = [sCAT].[category_id]
WHERE J.enabled = 1

2 个答案:

答案 0 :(得分:0)

这是答案的T-SQL形式,受到@Aaron Bertrand在问题下面的评论的启发。特别是,dbo.sysproxies保存ProxyName值。

在实践中,我不使用select *,而是专门命名要选择的字段。在这种情况下,我命名sp.Name来说明“运行方式”值的显示位置。

SELECT sp.NAME AS ProxyName,
    *
FROM dbo.sysjobs_view J
LEFT JOIN sys.syslogins L
    ON J.owner_sid = L.sid
LEFT JOIN dbo.syscategories AS [sCAT]
    ON j.[category_id] = [sCAT].[category_id]
LEFT JOIN dbo.sysproxies sp
    ON l.sid = sp.user_sid
WHERE J.enabled = 1

答案 1 :(得分:0)

 SELECT 
       sysjobsteps.step_name, 
       sysjobs.name 
 FROM sysjobsteps , sysjobs
 WHERE proxy_id = (SELECT proxy_id FROM msdb.dbo.sysproxies WHERE (name = 'ProxyAccountName'))
 AND sysjobs.job_id = sysjobsteps.job_id