假设以下情形:
所有数据都在Sql Server表中。
1)执行SQL任务,通过对Table1运行select来确定是否有要处理的记录。
2)如果存在,则执行SQL任务以截断Table2。
3)使用针对Table1的select的结果加载Table2的数据流任务。
现在,我可以在存储过程中轻松完成,但我需要在SSIS中执行此操作。
到目前为止,在控制流程中,我运行了我的select并将结果存储在一个表变量中,让我们调用它@ResultSet,并且为了好的测量,我还创建了一个对象类型变量,让我们调用它的MyResults也持有结果集。
如果@ResultSet为空,为了避免截断Table2,我会计算@ResultSet中的记录数,如果计数为零则引发错误,从而有效地中止包。
通常情况并非如此,而不是通过再次对Table1运行相同的查询来启动我的数据流,我现在想要访问我的@ResultSet或我的 MyResults对象与任何其他数据源一样。
后者应该可以使用脚本任务,但我真的,真的不想走这条路。
由于你的输入,我是否可以使用我的@ResultSet或者提出一种完全不同的方法,这就是问题所在。
TIA。
答案 0 :(得分:0)
我相信您的问题与此问题直接相关:SSIS Pass Datasource Between Control Flow Tasks 您确实可以将数据从一个数据流传递到数据集中的另一个数据流,或者通过原始文件传递。您可以通过
来检查哪种情况更好