【问题标题】:SQL Server Find What Jobs Are Running a ProcedureSQL Server 查找正在运行过程的作业
【发布时间】:2012-08-03 10:49:06
【问题描述】:

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

【问题讨论】:

    标签: sql-server tsql sql-server-2008-r2


    【解决方案1】:

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

    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 构造的,则可能会更难追踪。另请注意,如果您的过程名称也可以自然地出现在其他代码、cmets 等中,则可能会产生误报。

    【讨论】:

    • 对此稍作修改: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+'%'
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-30
    • 1970-01-01
    • 2015-10-05
    • 1970-01-01
    相关资源
    最近更新 更多