web-dev-qa-db-fra.com

SQL Server Rechercher les travaux exécutant une procédure

Existe-t-il un moyen de savoir quels travaux utilisent une certaine procédure stockée?

38
Lloyd Banks

Cela capturera les instances où la procédure est explicitement référencée dans l'étape de travail:

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%'
  );

Si elle est appelée par quelque chose d'autre qui est appelé à partir du travail, ou si la commande est construite avec du SQL dynamique, cela peut être un peu plus difficile à retrouver. Notez également que si le nom de votre procédure peut également apparaître naturellement dans d'autres codes, commentaires, etc., cela peut produire des faux positifs.

71
Aaron Bertrand