SQL Server查找作业正在运行的作业

Llo*_*nks 38 t-sql sql-server sql-server-2008-r2

有没有办法找出使用某个存储过程的作业?

Aar*_*and 72

这将捕获在作业步骤中显式引用过程的实例:

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%'
  );
Run Code Online (Sandbox Code Playgroud)

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

  • 对此稍作修改:`DECLARE @Search varchar(255) SET @Search='searchstring' SELECT j.name, s.step_id, s.step_name FROM msdb.dbo.sysjobsteps AS s, msdb.dbo.sysjobs as j WHERE s .job_id = j.job_id AND s.command LIKE '%'+@Search+'%'` (4认同)