【问题标题】:Using variables inside Execute SQL task query在执行 SQL 任务查询中使用变量
【发布时间】:2012-09-14 15:08:49
【问题描述】:

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

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

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

@bDate = VarDate1 
@eDate = VarDate2 

Var2, VarDate1, VarDate2 是 BIDS 中的变量

【问题讨论】:

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


    【解决方案1】:

    首先您需要在 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. 的信息进行操作

    【讨论】:

    • 抱歉,我的问题可能不清楚。我想遍历一个动态设置变量名的表,然后使用这些变量值作为过程的参数
    • 添加了更多关于循环记录集的信息
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    • 2023-03-11
    • 2021-11-20
    • 1970-01-01
    • 2017-12-17
    • 2014-01-03
    相关资源
    最近更新 更多