我已使用SQLCMD为触发SQL作业创建了批处理文件,但我们无法捕获作业运行的最后状态。请让我知道我们需要在批处理文件中编写哪些代码。
根据我们的代码,我们只在作业运行时捕获,但我们希望作业状态失败或通过。我已经尝试了很多东西甚至能够捕获日志,但我们只想要最后的工作状态。
以下是批处理文件中使用的代码:
echo execute job
sqlcmd -S "servername" -Q "execute msd.dbo.sp_start_job @job_name='Test_Job_Autosys'" -o c:\sqlscript\output.txt
if errorlevel 1 exit/b
echo job execution completed
输出:
Job started successfully
我们无法捕获工作失败或通过;请告诉我们如何捕捉工作状态。
答案 0 :(得分:0)
我建议你在一个存储过程中包含对msd.dbo.sp_start_job的调用。 这样,您可以监视作业状态,并在作业失败时返回或引发错误。
这里有一篇文章更详细地解释了它。
Querying agent job status, executing and waiting for job completion from within T-SQL
希望有所帮助