【发布时间】:2020-01-07 00:36:16
【问题描述】:
(从链接Executing SQL Server Agent Job from a stored procedure and returning job result获取的查询)
下面代码中@time_constraint的值是什么
WHILE @time_constraint = @ok
@time_constraint ?
@ok?** Here @time_Constrain denotes???????
use msdb
-- Start job
DECLARE @job_name NVARCHAR(MAX) = 'Demo_Test'
EXEC msdb.dbo.sp_start_job @job_name = @job_name
-- Wait for job to finish
DECLARE @job_history_id AS INT = NULL
WHILE @time_constraint = @ok
BEGIN
SELECT TOP 1 @job_history_id = activity.job_history_id
FROM msdb.dbo.sysjobs jobs
INNER JOIN msdb.dbo.sysjobactivity activity ON activity.job_id = jobs.job_id
WHERE jobs.name = @job_name
ORDER BY activity.start_execution_date DESC
IF @job_history_id IS NULL
BEGIN
WAITFOR DELAY '00:00:10'
CONTINUE
END
ELSE
BREAK
END
-- Check exit code
SELECT history.run_status
FROM msdb.dbo.sysjobhistory history
WHERE history.instance_id = @job_history_id
【问题讨论】:
-
这是您的代码 - 您希望我们如何知道它是如何工作的?
-
如果您偶然从其他地方“获取”了代码,您需要确认作为参考。
-
由 lapponiandevil
-
它不是完整的代码,它的伪代码,而且我可以说它只是说“把你自己的条件放在这里以确保循环不会永远等待”。但是,您可以通过在他们的答案中添加评论并标记他们的名字来直接询问作者。
标签: sql sql-server