2016-05-31 62 views
0

我是SSIS的新手,希望对我的问题有所帮助 - 我有一个存储过程,它不接受任何输入并返回临时表。这用于数据验证,并且每天都会运行,因此我需要为此创建一个SSIS包(要求如此)。我创建了一个Execute SQL任务,其中的结果集放在Object类型的变量中,但是我想添加检查rowcount> 1的条件,如果是,则写入excel文件。在Visual Studio 2012中用SSIS中的临时表调用存储过程

感谢, Hiral

回答

0

答案取决于您是否使用SSIS 2012+或2008 假设你是SSIS 2012+: 方法 - 声明变量int类型的行数。在Foreach循环中处理接收到的Object变量,更多详细信息和屏幕截图在this article中提供。内部循环 - 增量变量。然后你就可以根据行数变量值做一个条件执行> 0 选择 - 有效期为2008 SSIS还有:

  1. 对象与结果集只不过是一个.NET数据集的更多。创建一个脚本任务,对数据集的第一个表中的行进行计数,并将其存储在一个变量中。然后如上所述在包中使用这个变量。
  2. 而不是使用执行SQL脚本任务SP运行,使用DataFlow与OLE DB源并指定存储过程作为数据源。然后,你可以在一个变量等
+0

是的,我正在使用SSIS 2012,你的答案确实有帮助!非常感谢 –

0

更改属性Retainsameconnection =真正的连接管理器

这样做,你可以访问在上一步中创建临时表的计数结果行,店内价值。

0

如果您希望在单独的步骤中完成创建,则可以使用全局临时表。但是,这带有诸如每个人/每个流程都可以访问的自己的问题。

相关问题