我正在使用SSIS 2008.我有2个预定的工作,启动2个不同的包。 我想当包2启动时,它将确保包1仍然没有运行。如果是,则退出。
可能的?
感谢。
答案 0 :(得分:5)
不确定!!您可以执行以下步骤
1)在job2
中,添加第一步以检查job1
(反过来,package1)是否正在运行 - 使用以下脚本 - 来自Check if a SQL Server Agent job is running
IF NOT EXISTS(
select 1
from msdb.dbo.sysjobs_view job
inner join msdb.dbo.sysjobactivity activity on job.job_id = activity.job_id
where
activity.run_Requested_date is not null
and activity.stop_execution_date is null
and job.name = @JOB_NAME -- name of job1
)
2)上面的脚本将返回布尔值,根据该值,您可以决定执行job2
的第二步 - 这将是 - 执行package2
答案 1 :(得分:3)
另一种方法是在SQL JOB中按顺序定义要执行包的两个步骤,然后将on Success Action设置为package1的“转到下一步”,并将Success Action设置为“退出作业报告”成功“在包2上。
包2将仅在包1完成后运行。