【发布时间】:2017-05-25 20:10:54
【问题描述】:
背景
我想将 8 个表的数据从 Source (这会从其他地方获取数据) 加载到 Target。我的源中有一个控制表,每次加载表时都会维护条目。所以在我开始我的 SSIS 包之前,我需要检查源中的控制表是否有所有 8 个表的条目。
SSIS 包结构
- 两个变量
RecordCount(默认0)和SQLQueryForRecordCount(从控制表获取记录数的SQL查询) - 执行 SQL 任务 - 这里我正在执行选择查询以获取记录计数并将结果传递给变量
RecordCount - 在将数据流与
execute sql script连接时,我选择了Expression as Evaluation Operation和表达式为@[User::RecordCount] == 8,以便在RecordCount = 8时执行数据流。
到目前为止一切正常。
问题是我们不确定何时将条目插入到源中的控制表中(可以在 3 小时内随时完成)。所以我想循环第二步(执行sql脚本)直到RecordCount变量值达到8,然后开始下一个数据流任务。
如何做到这一点?请帮帮我。
【问题讨论】:
-
如果有 3 小时的窗口时间,为什么不将包执行时间设置为在 3 小时结束时执行?
-
@TheEsisia 一般这种情况出现在有开始处理的窗口,但你还是想尽快开始...
-
是的亚伦,你是对的。尽管有 3 小时的窗口,我们希望尽快开始将数据加载到下一个系统。
标签: sql-server ssis sql-server-2012 etl ssis-2012