SSIS:完成后如何自动重新运行软件包?

时间:2019-02-22 15:20:30

标签: sql-server visual-studio ssis ssms

我需要我的软件包在完成后立即再次运行。怎么做 ?我应该使用SQL Server代理吗?

我需要这样做,因为用户将无法访问SSIS,而只能访问Management Studio。

我使用了WMI Event Watcher Task来无限期寻找放置在“ Drop”文件夹中的特定文件。发生这种情况时,程序包将执行,然后我使用文件系统任务从文件所在的文件夹中将其删除到另一个“已归档”文件夹中。

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

我的问题是我必须在完成后单击“运行程序包”。我希望sis自己做。

有可能吗?

已编辑:

添加具有EvalExpression 1 = 1的For循环容器时,以下两个Execute SQL Tasks永远不会运行。没有循环,它们只会做一次,直到最后。

enter image description here

2 个答案:

答案 0 :(得分:1)

这可以使用SQL Agent进行如下设置:

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

enter image description here

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

enter image description here

第3步:添加新时间表以定义作业运行的时间间隔(根据您的要求进行调整)

enter image description here

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

注意:请在您的非产品环境中进行测试,以确保其可以正常工作。

答案 1 :(得分:0)

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

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