就SSIS包而言,我是一个完全的初学者。
我真的想要执行一个存储过程,该过程在foreach循环的每次迭代中接受具有不同值的参数。所以我想知道是否有人可以给我一个例子(非常非常非常基本的例子)我如何在Execute SQL Task
内使用变量作为这样的值:
UPDATE tbName SET c1 = Var1, C2 = Var2 etc...
OR
@bDate = VarDate1
@eDate = VarDate2
其中Var2, VarDate1, VarDate2
是BIDS中的变量
答案 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.
的信息进行操作