有点卡在我们遇到的问题上,让我尽力解释场景,问题以及我们尝试过的内容。
- 我们有一个 SQL 作业,它正在记录到一个特定的文件,该文件带有一个附加到末尾的日期标记
- 第一步检查我们的日志文件是什么,例如 log_01012012.log,如果这不正确,我们更新表 sysjobsteps 以获得所有步骤的新文件位置 - 例如 log_02012012.log。我们通过在第一个工作步骤中调用存储过程来做到这一点。
- 虽然这在表中得到更新,但其余步骤继续使用旧日志,因为我假设该表仅在作业开始时被读取一次。
我们尝试使用以下代码在存储过程中重新启动作业:
EXEC msdb.dbo.sp_stop_job @job_name = 'My Job'
waitfor delay '00:00:15'
EXEC msdb.dbo.sp_start_job @job_name = 'My Job'
但是,当我们终止作业时,它会在终止存储过程(我猜它是作业的子进程)时出现,这意味着它永远不会进入重新启动作业的步骤。
有没有一种方法可以让作业重新启动,以便再次查看 sysjobsteps 表并使用正确的位置进行日志记录?
可能解决问题的事情是
- 能够从作业本身重新启动作业
- 能够在某些方面刷新工作。
任何我需要澄清的事情我都会尽力而为,但我们目前陷入困境,所有输入将不胜感激!