你如何在SSIS中调用存储过程?

时间:2009-04-13 20:13:46

标签: sql-server sql-server-2005 stored-procedures ssis parameters

我正在尝试创建一个SSIS包来查询表中的数据,并使用每一行调用另一个数据库中的存储过程。

在我的旧DTS包中,我这样做:

EXEC myStoredProcedure ?, ?, ?

...然后我映射了参数。但是,在SSIS中,我无法弄清楚如何使这项工作。

我有一个数据流任务,它首先运行数据查询。它将数据传递给OLE DB目标。我将数据访问模式设置为“SQL命令”,但是当我尝试输入上面的SQL时,我在解析SQL时得到“无效参数计数”。我无法进入Mappings屏幕。有什么想法吗?

2 个答案:

答案 0 :(得分:13)

在数据流中,OLE DB Command可用于为数据流中的每一行执行SQL语句 - (MSDN documentation

或者,您可以将源结果集存储在数据类型对象的变量中,并在控制流中使用Foreach Loop容器(示例here)。

答案 1 :(得分:8)

您需要使用执行SQL任务。在SQLStatement部分中,您可以添加代码以执行存储过程。

为了传递参数,请使用?语法并在“参数映射”部分中指定参数。

可以找到一个很好的例子here