将结果存储在执行 Sql 任务中
Store result in Execute Sql task
我写了一个存储过程,它将return列BEID、Date_of_txn、Txn_Amount作为执行后的结果。当我 运行 SQL Server Management Studio 中的存储过程时,我手动获取结果。但我想在 SSIS 中使用 "Execute SQL" 任务执行此存储过程,并将结果存储在变量中。我该怎么做?
我不知道如何将结果存储在结果集中,因为当我 运行 包时,包每次都失败。
- 结果集:
Single Row
- 连接类型:
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
...
这种查询很有可能returns多行,因此应该将结果集切换为:“完整结果集”,输出为映射到具有以下类型的变量:Object,还有一个 foreach
任务遍历每一行。
好的step-by-step演练可以阅读:Execute SQL Task in SSIS Full Row Set
我写了一个存储过程,它将return列BEID、Date_of_txn、Txn_Amount作为执行后的结果。当我 运行 SQL Server Management Studio 中的存储过程时,我手动获取结果。但我想在 SSIS 中使用 "Execute SQL" 任务执行此存储过程,并将结果存储在变量中。我该怎么做?
我不知道如何将结果存储在结果集中,因为当我 运行 包时,包每次都失败。
- 结果集:
Single Row
- 连接类型:
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
...
这种查询很有可能returns多行,因此应该将结果集切换为:“完整结果集”,输出为映射到具有以下类型的变量:Object,还有一个 foreach
任务遍历每一行。
好的step-by-step演练可以阅读:Execute SQL Task in SSIS Full Row Set