SSIS。确保作业没有运行

时间:2013-07-08 12:26:56

标签: sql-server ssis

我正在使用SSIS 2008.我有2个预定的工作,启动2个不同的包。 我想当包2启动时,它将确保包1仍然没有运行。如果是,则退出。

可能的?

感谢。

2 个答案:

答案 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完成后运行。