尽管没有显示任何正在运行的内容,我无法启动 SQLServer 代理作业。
背景:我把事情搞砸了,之后就忘了这件事
我的测试作业中只有一个步骤,并添加了另一个步骤。我的目标是仅从步骤 2 开始,因为我只想运行步骤 2,而不是运行时间很长的步骤 1。当我选择“从步骤开始”时,它只是开始运行,而不向我显示步骤的选择,当我查看作业时,它仍然只有一个步骤,并且运行时间很长的步骤正在运行。
我的第一个猜测是,我一定是忘记添加第二步了,因为关闭菜单时没有保存。我的第二个猜测是,我只是关闭了带有绿色“正在运行”的窗口,以为这可能会停止工作,但我从后来的检查中知道,关闭并不是停止。然后我在做其他工作时忘记了这件事。
由于后来我看不到任何标有“正在运行”的框,因此我再次添加了第二步并从第 2 步开始,然后出现了所讨论的错误。
错误:
作业启动失败..
...
SQLServer 代理错误:运行作业..(来自用户..)的请求被拒绝,因为该作业已根据用户..的请求运行(Microsoft SQL Server,错误 22022)
显然,长时间运行的步骤 1 仍在后台运行。但我不再知道这一点。
因此我问了这个问题:
如果在启动选定步骤时没有作业显示为“正在运行”,如何避免出现错误“由于作业已在运行,因此拒绝运行作业请求”?
等待这个结束是没有意义的。当没有任何运行的时候,我仍然点击停止作业:
即使您没有看到它正在运行,也停止该作业向我展示了:
这个绿色的成功消息证明该作业确实在后台运行,而前端没有显示任何生命迹象。我一定是关闭了窗口,然后就忘了这件事。
我检查了停止一个没有运行的作业,但失败了:
我想您也可以使用一些命令提示符技巧来检查和修复这些问题,可能有一个您可以看到并终止或停止的作业,但我没有尝试过。
停止后,可以再次运行该步骤: