什么SQL Server代理作业正在运行存储过程?

时间:2014-06-16 12:08:17

标签: sql-server-2008-r2 sql-agent

我有一个存储过程,我知道正在SQL Agent中的某个地方运行我只是不知道在哪里。有一个简单的方法可以找到答案吗?比编写所有作业并在那里搜索它更容易吗?

TIA - 杰夫。

1 个答案:

答案 0 :(得分:1)

您可以使用msdb.dbo.sysjobsteps表格。 command字段包含步骤的SQL语句。

以下是一个示例查询:

USE [msdb]
GO
SELECT
    J.job_id,
    J.name,
    JS.step_id,
    JS.command,
    J.enabled 
FROM
    dbo.sysjobs J
    INNER JOIN dbo.sysjobsteps JS
        ON JS.job_id = J.job_id 
WHERE
    JS.command LIKE N'%string to find%'

请注意,SQL Agent中的每个子系统的命令都不同。您可以在T-SQL steps中找到SP名称,但无法在SSIS packagePowerShell或其他类型的步骤中找到它们。

以下是sysjobsteps表的文档:http://msdn.microsoft.com/en-us/library/ms187387(v=sql.105).aspx