42

有没有办法找出哪些作业正在使用某个存储过程?

4

1 回答 1

86

这将捕获在作业步骤中明确引用该过程的实例:

SELECT j.name 
  FROM msdb.dbo.sysjobs AS j
  WHERE EXISTS 
  (
    SELECT 1 FROM msdb.dbo.sysjobsteps AS s
      WHERE s.job_id = j.job_id
      AND s.command LIKE '%procedurename%'
  );

如果它被从作业中调用的其他东西调用,或者命令是用动态 SQL 构造的,这可能会更难追踪。另请注意,如果您的过程名称也可以自然地出现在其他代码、注释等中,则可能会产生误报。

于 2012-08-06T13:01:15.300 回答