如何停止显示“正在进行”状态的 SQL 作业?

问题描述 投票:0回答:2

我正在使用

SQL Server 2014
,并且我有一份工作(称为 ITB),该工作已安排在每天凌晨 4 点运行。
SQL
作业有 11 个步骤。 今天早上 9 点,我注意到该作业在作业历史记录中显示“正在进行”。好像卡在第 8 步(共 11 步)。

我尝试通过右键单击

SSMS
中的作业名称来停止作业,但收到以下消息:

"Stop failed for Job 'ITB' (Microsoft.SqlServer.Smo)

我还尝试在 SSMS 中运行以下 T-SQL 命令来停止作业:

USE msdb ;  
GO  

EXEC dbo.sp_stop_job  
N'ITB' ;  
GO  

我收到以下消息是 SSMS:

Msg 22022, Level 16, State 1, Line 2
SQLServerAgent Error: Request to stop job ITB (from User sa) refused because the job is not currently running.

这里发生了什么?我该如何处理?

sql-server ssms sql-job
2个回答
1
投票

重新启动 SQL Server 代理

在对象资源管理器中,连接到数据库引擎实例,右键单击“SQL Server 代理”,然后单击“启动”、“停止”或“重新启动”。

如果出现“用户帐户控制”对话框,请单击“是”。

当系统提示您是否要执行该操作时,请单击“是”。


0
投票

您需要添加检查以查看作业是否正在运行。仅当命令正在运行时才运行它

如果存在(

    SELECT * FROM
    msdb.dbo.sysjobactivity AS sja
    INNER JOIN msdb.dbo.sysjobs AS sj
    ON  sja.job_id = sj.job_id
    WHERE
    sja.start_execution_date IS NOT NULL AND
    sja.stop_execution_date IS NULL AND
    sj.name =  N'RamTest'
)

BEGIN

    EXEC msdb..sp_stop_job @job_name = N'RamTest;

END
© www.soinside.com 2019 - 2024. All rights reserved.