使用查询停止并重新启动数据库作业



我正在寻找一种方法,在正在运行的作业运行一段时间后停止它,然后重新启动。

我已经阅读了sp_stop_job,据我所知,一旦当前正在运行的步骤完成,这将停止作业。
我不能使用它,因为作业通常会卡在一个步骤上,需要停止并重新启动,然后才能正常完成。

我已经有一个运行并针对运行时间超过预期的作业发出警报的作业,我只需要一种方法来停止并重新启动很可能无法完成当前步骤的特定作业。

使用 SQL Server 2014 Management Studio

谢谢
史蒂文

SELECT 
    p.spid,
    j.name AS job_name,
    ja.start_execution_date    
FROM msdb.dbo.sysjobactivity ja
JOIN msdb.dbo.sysjobs j 
ON ja.job_id = j.job_id
JOIN master.dbo.sysprocesses p
ON master.dbo.fn_varbintohexstr(convert(varbinary(16), j.job_id)) COLLATE Latin1_General_CI_AI = 
    substring(replace(program_name, 'SQLAgent - TSQL JobStep (Job ', ''), 1, 34)
    WHERE ja.session_id = (SELECT TOP 1 session_id FROM msdb.dbo.syssessions ORDER BY agent_start_date DESC)
AND start_execution_date is not null
AND stop_execution_date is null;

最新更新