SSIS 中的 OLE DB 命令转换用于在数据流中运行 INSERT、UPDATE 和 DELETE 等 SQL 语句。SSIS OLE DB 命令转换一次读取一行,并对该行应用 SQL 语句。因此,如果行数增加,性能将非常差。例如,要更新 5 条记录,OLE DB 命令转换将运行五次。
本文介绍了使用 SSIS OLE DB 命令转换将数据插入 SQL Server 的过程。请参考 使用 OLEDB 命令转换删除数据 文章以了解如何删除数据,参考 使用 OLEDB 命令转换更新数据 文章以了解更新操作。此外,还请参考 带参数调用存储过程 文章。
SSIS 中使用 OLE DB 命令转换插入数据示例
在本示例中,我们将展示如何使用 OLE DB 命令转换将数据插入目标表。在设计 SSIS 包之前,让我们先看看数据库中的目标表。

将“数据流任务”从工具箱拖放到控制流区域。并将其重命名为 SSIS 中使用 OLE DB 命令转换插入数据。

双击它,它将打开数据流选项卡。有关更多转换 >> 点击此处。
从工具箱将 OLE DB 源和 OLE DB 命令转换拖放到数据流区域。

在数据流区域中,双击 OLE DB 源将打开连接管理器设置,并允许我们选择所需的表。

我们在上面的屏幕截图中使用的 SQL 命令是
SELECT [ProductKey]
,[EnglishProductName]
,[StandardCost]
,[Color]
,[ListPrice]
,[DealerPrice]
,[EnglishDescription]
FROM [AdventureWorksDW2014].[dbo].[DimProducts]
单击列选项卡以验证列。在此选项卡中,我们可以取消选中不需要的列。

将 OLE DB 源输出箭头拖到 OLE DB 命令转换上,以对源数据执行转换。
步骤 5:双击 OLE DB 命令转换将打开 OLE DB 命令的高级编辑器进行配置。
在“连接管理器”选项卡中,我们从列表中选择已创建的 OLE DB 连接。有关配置设置,请参阅 OLE DB 连接管理器 文章。

在“组件属性”中,我们必须编写要执行的 SQL 语句。请选择 SqlCommand 属性,然后单击浏览按钮(...按钮)

单击浏览按钮后,将打开“字符串值编辑器”窗口来编写 SQL 语句。在此示例中,我们将值插入 products 表。

我们在 SSIS 中为此 OLE DB 命令转换使用的语句是
INSERT INTO [dbo].[Products]
([EnglishProductName]
,[StandardCost]
,[Color]
,[ListPrice]
,[DealerPrice]
,[EnglishDescription])
VALUES
(?, ?, ?, ?, ?, ?)
在列映射中,我们必须为参数分配适当的列名。

从上面的屏幕截图,您可以看到 Param_0 代表第一个问号,param_5 代表第五个问号。
让我们为参数分配适当的列名。

单击确定以完成 SSIS 包中插入数据使用 OLE DB 命令转换的配置。让我们运行该包。

让我们打开 SQL Server Management Studio 并检查结果。
