0

我有一个存储过程,我知道它正在 SQL 代理中的某个地方运行,我只是不知道在哪里。有没有简单的方法可以找出来?比编写所有工作脚本并在那里搜索更容易吗?

TIA-杰夫。

4

1 回答 1

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 代理中每个子系统的命令都不同。您可以在 中找到 SP 名称,但在or或其他类型的步骤T-SQL steps中找不到它们。SSIS packagePowerShell

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

于 2014-06-16T12:15:57.097 回答