在控制和数据流中使用表变量

时间:2012-06-21 14:36:12

标签: sql sql-server ssis

假设以下情形:

所有数据都在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。

1 个答案:

答案 0 :(得分:0)

我相信您的问题与此问题直接相关:SSIS Pass Datasource Between Control Flow Tasks 您确实可以将数据从一个数据流传递到数据集中的另一个数据流,或者通过原始文件传递。您可以通过

来检查哪种情况更好