0

就 SSIS 包而言,我是一个完整的初学者。

我真的很想执行一个存储过程,它在 foreach 循环的每次迭代中接收具有不同值的参数。所以我想知道是否有人可以给我一个例子(非常非常非常基本的例子)关于我如何在Execute SQL Task这样的内部使用变量作为值:

UPDATE tbName   SET  c1 = Var1,  C2 = Var2 etc... 

或者

@bDate = VarDate1 
@eDate = VarDate2 

Var2, VarDate1, VarDate2BIDS 中的变量在哪里

4

1 回答 1

0

首先,您需要在 SQL Server 端创建存储过程。这是通过这样的声明完成的。运行此操作后,数据库中将存在一个名为“yourProcedure”的新存储过程对象。

CREATE PROCEDURE yourProcedure
   @pKeyVar int,                 /* declare variables to be passed here */
   @pFirstVar varchar(40), 
   @pSecondVar int,
   @pThirdVar decimal(18,2)
AS 
BEGIN

   Update yourTable Set          /* place what will be done here */
       Col1 = @pFirstVar, 
       Col2 = @pSecondVar, 
       Col3 = @pThirdVar 
   WHERE KeyColumn = @pKeyVar

END
GO

创建存储过程后,您可以像这样调用它:

exec dbo.yourProcedure 12345, 'string value', 2, 2.05

有几种方法可以从 SSIS 调用它,但最常见的是Execute SQL Task. 您可以将要传递的参数映射到保存内容的变量,并将任务放入循环逻辑中。

这是执行 SQL 任务的一个不错的演练。

密切关注映射参数到变量等部分。SSIS 的版本是 2005,但概念都是相同的。


评论后更新。

为了遍历记录集并获取值以传回 proc,您可以按照本文中提供的信息进行操作。

于 2012-09-14T16:11:15.043 回答