我有一个存储过程,我知道它正在 SQL 代理中的某个地方运行,我只是不知道在哪里。有没有简单的方法可以找出来?比编写所有工作脚本并在那里搜索更容易吗?
TIA-杰夫。
我有一个存储过程,我知道它正在 SQL 代理中的某个地方运行,我只是不知道在哪里。有没有简单的方法可以找出来?比编写所有工作脚本并在那里搜索更容易吗?
TIA-杰夫。
您可以使用该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 package
PowerShell
这是 sysjobsteps 表的文档:http: //msdn.microsoft.com/en-us/library/ms187387 (v=sql.105).aspx