SSIS OLE DB 命令调用带参数的存储过程

本文档展示了如何使用具有参数的 OLE DB 命令转换在 SSIS Integration Services 中调用存储过程,并附带了一个示例。

下表显示了成本表;我们将这些表列用作参数值。

Costing Table

用于应用存储过程的表,其中包含 395 行。

Table to Apply

下面的代码显示了我们为此演示创建的 已删除的存储过程。它是一个简单的存储过程,接受两个参数,并删除颜色等于 @Color 且列表价格小于 @ListPrice 参数的表记录。

我们使用的查询是

USE [Task Results]
GO
CREATE PROCEDURE [dbo].[spDelteRecords]
	@Color NVARCHAR(15),
	@ListPrice Money
AS
BEGIN
	SET NOCOUNT ON;
	DELETE FROM [OLE DB Command Insert]
	WHERE Color = @Color OR ListPrice < @ListPrice
END

EXECUTE [dbo].[spDelteRecords] ?, ?

SSIS OLE DB 命令调用带参数的存储过程

将数据流任务拖放到控制流区域。

Add Data Flow Task to Package

双击以打开 SSIS 数据流区域。然后,拖放 OLE DB 源 并双击打开编辑器。接下来,单击“新建”按钮以配置 OLE DB 连接管理器。在此,我们选择了现有的连接。

Connect to Database Tables

在此示例中,我们必须从列表中选择现有的成本表。

Choose Existing Database Table

接下来,转到“列”选项卡检查“颜色”和“列表价格”列,因为我们要将这些列的值用作参数,然后单击“确定”按钮。

Select Required Columns

添加 OLE DB 命令转换 并连接到源。双击它将打开高级编辑器。在“连接管理器”选项卡下,选择现有的 OLE DB 连接。

SSIS OLE DB Command calls Stored Procedure with Parameters

编写以下 SQL 命令来执行或运行存储过程。这里的 ? 代表 参数 值。

Execute SP

检查命令。

SSIS OLE DB Command calls Stored Procedure with Parameters

在“列映射”下,映射输入列和目标列。输入列来自成本表,目标列表示参数。

Parameters Mapping

运行 SSIS OLE DB 命令调用带参数的存储过程包。

Run SSIS OLE DB Command calls Stored Procedure with Parameters

Management Studio 中,如果查看表,会发现没有列表价格小于 16 的白色或黑色产品。因此,记录总数变为 251,而原始记录数为 395。

Result Table