【发布时间】:2014-06-16 12:08:17
【问题描述】:
我有一个存储过程,我知道它正在 SQL 代理中的某个地方运行,我只是不知道在哪里。有没有简单的方法可以找出来?比编写所有工作的脚本并在那里搜索更容易吗?
TIA - 杰夫。
【问题讨论】:
标签: sql-server-2008-r2 sql-agent
我有一个存储过程,我知道它正在 SQL 代理中的某个地方运行,我只是不知道在哪里。有没有简单的方法可以找出来?比编写所有工作的脚本并在那里搜索更容易吗?
TIA - 杰夫。
【问题讨论】:
标签: sql-server-2008-r2 sql-agent
您可以使用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 代理中每个子系统的命令都不同。您可以在T-SQL steps 中找到SP 名称,但在SSIS package 或PowerShell 或其他类型的步骤中找不到它们。
这里是 sysjobsteps 表的文档:http://msdn.microsoft.com/en-us/library/ms187387(v=sql.105).aspx
【讨论】: