web-dev-qa-db-ja.com

SQL Serverがプロシージャを実行しているジョブを見つける

特定のストアドプロシージャを使用しているジョブを確認する方法はありますか?

38
Lloyd Banks

これにより、ジョブステップでプロシージャが明示的に参照されているインスタンスがキャプチャされます。

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で構築される場合、これを追跡するのが少し難しくなる可能性があります。また、プロシージャ名が他のコードやコメントなどにも自然に表示される可能性がある場合は、誤検出が発生する可能性があることに注意してください。

71
Aaron Bertrand