首页 > 解决方案 > SSIS:如何在包完成后自动重新运行包?

问题描述

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

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

我使用 WMI 事件观察器任务无限期地查找正在放置在文件夹“Drop”中的特定文件。发生这种情况时,程序包会执行,然后我使用文件系统任务将文件从文件夹中删除到另一个文件夹“Archved”。

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

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

可能吗?

编辑:

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

在此处输入图像描述

标签: sql-servervisual-studiossisssms

解决方案


这可以使用 SQL 代理进行设置,如下所示:

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

在此处输入图像描述

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

在此处输入图像描述

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

在此处输入图像描述

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

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


推荐阅读