2013-07-08 150 views
2

我正在使用SSIS 2008.我有2个计划作业启动2个不同的软件包。 我想当包2启动时,它会确保包1没有运行。如果是,则退出。SSIS。确保作业未运行

可能吗?

谢谢。

回答

5

当然!你可以做以下步骤,

1)job2,添加第一步,检查是否job1(进而,包1)运行与否 - 使用下面的脚本 - 得到了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

3

另一种方法是在SQL JOB中按顺序定义两个步骤你想执行这个包,然后设置On S uccess行动“进入下一步”为包1和成功操作设置为“退出作业报告成功”软件包2.

包2后,才包1完成运行。