sql - 将结果存储在执行 Sql 任务中

标签 sql sql-server ssis etl execute-sql-task

我编写了一个存储过程,执行后将返回列 BEID、Date_of_txn、Txn_Amount 作为结果。当我在 SQL Server Management Studio 中运行存储过程时,我手动获取结果。但我想在 SSIS 中使用“执行 SQL”任务来执行这个存储过程,并将结果存储在变量中。我怎样才能做到这一点?

我不知道如何将结果存储在结果集中,因为当我运行包时,包每次都会失败。

  • 结果集:单行
  • 连接类型:OLE DB
  • 连接:LocalHost.Fino_Detail
  • SQL语句:Exec sp_HighAmount 02, 2019

存储过程:

CREATE PROCEDURE [dbo].[sp_HighAmount]
    (@Month INT,
     @Year INT)
AS
BEGIN
    SELECT
        BEID, DATE_OF_TXN, SUM(Txn_amount) AS Txn_Amount 
    FROM 
        Fino_Sales
    WHERE
        SUBSTRING(Date_of_txn, 6, 2) = @Month
        AND SUBSTRING(Date_of_txn, 1, 4) = @Year
    GROUP BY
        BEID, Date_of_txn
    HAVING 
        SUM(Txn_Amount) BETWEEN 35001 AND 50000
        AND SUM(commission_paid) > 350
END

最佳答案

... 
group by BEID, Date_of_txn
...

此类查询很有可能返回多行,因此应将结果集切换为:“完整结果集”,并将输出映射到类型为:< strong>Object,还有一个 foreach 任务来遍历每一行。

一个好的分步演练可以阅读:Execute SQL Task in SSIS Full Row Set

关于sql - 将结果存储在执行 Sql 任务中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56609458/

相关文章:

java - 从文件中读取数据并将其添加到数据库中,但不添加相同的值

c# - 当 IDENTITY_INSERT 设置为 OFF 时,无法为标识列插入显式值

testing - 用于测试批量数据的 SSIS

xml - XML 文件处理要点的最佳方式 •

sql - Oracle 索引查询不起作用

php - MySQL PDO WHERE 语句中的 NULL

mysql - 从对话中选择最后一条消息

mysql - 从 MySQL 移动到 SQL Server 后显示的错误

sql - 在所有存储过程中搜索模式然后打开它进行更改的方法

visual-studio - 查看 SSIS .dtsx 包源代码不适用于项目外部的 F7