在本文中,我们将通过示例向您展示如何使用 SSIS 中的 OLEDB 命令转换来更新数据。有关使用 OLE DB 命令转换插入数据,请参阅 OLE DB 命令转换 文章;有关删除操作,请参阅 使用 OLEDB 命令转换删除数据 文章。
例如,所有白色产品的标准成本、标价和经销商价格已发生变化。我们的任务是使用修改后的价格更新产品表。在开始设计 SSIS SSIS 使用 OLEDB 命令转换更新数据包之前,我先向您展示数据库中的表。

下面的屏幕截图显示了更改后的价格列表。

在 SSIS 中使用 OLEDB 命令转换更新数据
在此示例中,我们的任务是使用 SSIS OLE DB 命令转换将数据库中产品表的旧值更新为 Costing 表中的新数据或值。将“数据流任务”从工具箱拖放到“控制流”区域,并将其重命名为“在 SSIS 中使用 OLEDB 命令转换更新数据”。

双击它,它将打开数据流选项卡。接下来,将 OLE DB 源和 OLE DB 命令转换从工具箱拖放到数据流区域。

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

单击“列”选项卡以验证列或取消选中不需要的列。

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

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

单击浏览按钮后,将打开一个字符串值编辑器窗口,用于编写 SQL 语句。在此示例中,我们正在更新产品表中的值。

我们在 SSIS 中用于使用 OLEDB 命令转换更新数据的 SQL 语句是:
UPDATE [dbo].[Products]
SET [StandardCost] = ?
,[ListPrice] = ?
,[DealerPrice] = ?
WHERE [Color] = 'white' AND [EnglishProductName] = ?
在“列映射”中,我们必须将适当的列名分配给参数。

从上面的屏幕截图可以看出,Param_0 代表第一个问号,param_3 代表第四个问号。
让我们为参数分配适当的列名。
单击“确定”以完成配置 SSIS 包中的“使用 OLE DB 命令转换更新数据”包。让我们运行该包。

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

评论已关闭。