SQL 2000 脚本在代理作业溢出时终止该作业
在等待升级的旧版 SQL 2000 机器上
是否有人有脚本可以在 SQL Agent 2000 中的作业超出设定的持续时间或与另一个代理作业重叠时终止/中止该作业。
这给我们带来了严重的问题,每隔几周就会有一个作业超支,然后锁定重建索引作业,从而冻结我们的 24 / 7 服务器
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
一种解决方案是在作业开头添加一个步骤,与长时间运行的作业重叠,检查长时间运行的作业是否仍在运行,如果运行则发出
sp_stop_job
命令。您可以使用 获取作业的当前执行状态
sp_help_job
,但其输出在查询中不太容易操作。sp_help_job 的输出强制转换为临时表的各种方法。 ="nofollow">此处 - 或者您可以查询
msdb.sysjobhistory
获取执行状态信息。One solution would be to add a step at the beginning of the job with which the long-running job overlaps which checks whether the long-running job is still running, and if it is issue an
sp_stop_job
command.You can get the current execution status of a job using
sp_help_job
, but its output is not very easy to manipulate in a query.Various methods of coercing the output of
sp_help_job
into a temp table in SQL 2000 are discussed here - alternatively you can querymsdb.sysjobhistory
to get the execution status information.