我有一个通用的SSIS包,用于上传多个文件,只有一个批处理文件用于触发此包,期望调度程序调用不同的文件。
问题是所有文件会同时进入系统,ESP会为每个文件多次触发相同的批处理文件。
我有一个Execute SQL任务组件作为我在包中的第一个组件,它将从表中删除数据,因为这些包被称为表的多次丢失单个文件的数据。
我想同步此行为,这意味着我只想在第一次文件加载完成后再次为另一个文件运行包。
答案 0 :(得分:1)
您可以拥有一个计划表,然后创建foreach循环作为第一个被调用的组件。您的计划表将有一个oledb源,循环将迭代以获取文件列表。例如上载第一个文件后,执行sql task以使用updatedatetime更新计划表。计划表将包含每个文件的行。您可以选择要上传哪些文件,例如select * from schedule其中updatedatetime< getdate() - 5第一个完成之后,执行另一个sql任务来截断表并调用schedule表中的下一个。