SSIS:如何在程序包完成后自动重新运行程序包?

问题描述 投票:2回答:2

我需要我的包完成后再直接运行。怎么做 ?我应该使用SQL Server代理吗?

我需要这样做,因为用户不能访问SSIS,只能访问Management Studio。

我使用WMI事件观察器任务无限期地查看正在“Drop”文件夹中下载的特定文件。当它发生时,包执行,然后我使用文件系统任务将文件从它被删除的文件夹中删除到另一个文件夹“Archved”。

最后,用户应该能够通过将相同的文件放在触发包“Drop”的文件夹中来重新运行包。

我的问题是我必须在完成后点击“运行包”。我希望ssis能够自己完成。

可能吗?

编辑:

添加EvalExpression 1 = 1的For循环容器时,以下两个执行SQL任务永远不会运行。如果没有Loop,他们只会直到最后一次。

enter image description here

sql-server visual-studio ssis ssms
2个回答
1
投票

这可以使用SQL Agent设置,如下所示:

第1步:使用SSMS创建新作业:

enter image description here

步骤2:添加新作业步骤以运行SSIS包

enter image description here

步骤3:添加新计划以定义作业运行的间隔(调整它以满足您的要求)

enter image description here

在这种情况下,对于每次运行,程序包中的文件观察程序步骤将等待文件被删除,并在文件被删除/找到后成功运行作业。

注意:请在非产品环境中进行测试,以确保其按预期工作。


0
投票

我认为最简单的方法是创建另一个包,让我们称之为主包。添加两个执行相同包的Execute Package Task

有关“执行包任务”的更多信息,请查看以下链接:

© www.soinside.com 2019 - 2024. All rights reserved.