我正在使用 SSIS 2008。我有 2 个计划的作业,它们启动 2 个不同的包。我想当包 2 启动时,它会确保包 1 没有仍在运行。如果是,则退出。
可能的?
谢谢。
我正在使用 SSIS 2008。我有 2 个计划的作业,它们启动 2 个不同的包。我想当包 2 启动时,它会确保包 1 没有仍在运行。如果是,则退出。
可能的?
谢谢。
当然!!您可以按照以下步骤操作
1)在job2
中,添加第一步以检查job1
(反过来,package1)是否正在运行 - 使用以下脚本 - 从检查 SQL Server 代理作业是否正在运行
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
另一种方法是在 SQL JOB 中定义两个步骤,以便您希望执行包,然后将包 1 的 On Success Action 设置为“转到下一步”,并将 Success Action 设置为“退出作业报告成功”包 2。
包 2 将仅在包 1 完成后运行。