在Execute SQL任务查询中使用变量

时间:2012-09-14 15:08:50

标签: sql-server-2008 ssis business-intelligence bids

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

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

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

OR

@bDate = VarDate1 
@eDate = VarDate2 

其中Var2, VarDate1, VarDate2是BIDS中的变量

1 个答案:

答案 0 :(得分: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。您可以映射将传递给包含内容的变量的参数,并将任务放入循环逻辑中。

Here is a decent walkthrough of the Execute SQL Task.

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


评论后更新。

为了遍历记录集并获取值以传回proc,您可以按照provided in this article.

的信息进行操作