SQL Server 2008(SSMS):查找作业的下一个运行日期

SQL Server 2008(SSMS):查找作业的下一个运行日期

我想知道是否有一种方法可以使用 T-SQL 查询或甚至在 SSMS 中获取下一次作业应该在 SQL Server 2008 中运行的时间,而不必查阅所有作业的所有计划。

谢谢

答案1

在 msdb 数据库中运行 sp_help_job。next_run_date 和 next_run_time 列具有您要查找的值。

答案2

因为我喜欢一些 powershell:

$server = new-object microsoft.sqlserver.management.smo.server 'yourinstance';
$agent = $server.jobserver;
$job = $agent.jobs['your job name here'];
$job.nextrundate;

答案3

这将为您提供包含您的作业名称和下次运行日期/时间的单行结果集。

DECLARE @JobName sysname
SET @JobName='Query Tool Daily Routines'

SELECT
    JobName,
    MAX(NextRunTime) as NextRunTime
FROM (
    SELECT 
        j.name as JobName,
        cast(
            CONVERT(CHAR(8), next_run_date, 112) 
            + ' ' 
            + STUFF(STUFF(RIGHT('000000' 
            + CONVERT(VARCHAR(8), next_run_time), 6), 5, 0, ':'), 3, 0, ':')
            as datetime) as NextRunTime
    FROM msdb.dbo.sysjobs j
    join msdb.dbo.sysjobschedules s on j.job_id = s.job_id
        and j.name=@JobName
) t1
group by JobName

当然,您可以摆脱 DECLARE 和 SET,而只需将其包含在内部查询的连接中。

答案4

供浏览过这个旧线程的谷歌用户参考,作业活动监视器返回大量与 sp_help_jobs 相同的信息。

相关内容