在 SSIS 中使用 OLEDB 命令转换更新数据

在本文中,我们将通过示例向您展示如何使用 SSIS 中的 OLEDB 命令转换来更新数据。有关使用 OLE DB 命令转换插入数据,请参阅 OLE DB 命令转换 文章;有关删除操作,请参阅 使用 OLEDB 命令转换删除数据 文章。

例如,所有白色产品的标准成本、标价和经销商价格已发生变化。我们的任务是使用修改后的价格更新产品表。在开始设计 SSIS SSIS 使用 OLEDB 命令转换更新数据包之前,我先向您展示数据库中的表。

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

在 SSIS 中使用 OLEDB 命令转换更新数据

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

Update Data Using OLEDB Command Transformation in SSIS 2

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

Update Data Using OLEDB Command Transformation in SSIS 3

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

Update Data Using OLEDB Command Transformation in SSIS 4

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

Update Data Using OLEDB Command Transformation in SSIS 5

将 OLE DB 源输出箭头拖到 OLE DB 命令转换上,以对源数据执行转换。

步骤 5:双击 OLE DB 命令转换,将打开 OLE DB 命令的“高级编辑器”以进行配置。

在“连接管理器”选项卡中,我们从列表中选择已创建的 OLE DB 连接。请参阅 OLE DB 连接管理器 文章。

Update Data Using OLEDB Command Transformation in SSIS 6

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

Update Data Using OLEDB Command Transformation in SSIS 7

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

Update Data Using OLEDB Command Transformation in SSIS 8

我们在 SSIS 中用于使用 OLEDB 命令转换更新数据的 SQL 语句是:

UPDATE [dbo].[Products]
   SET [StandardCost] = ?
      ,[ListPrice] = ?
      ,[DealerPrice] = ?

 WHERE [Color] = 'white' AND [EnglishProductName] = ?

在“列映射”中,我们必须将适当的列名分配给参数。

Update Data Using OLEDB Command Transformation in SSIS 9

从上面的屏幕截图可以看出,Param_0 代表第一个问号,param_3 代表第四个问号。

让我们为参数分配适当的列名。

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

Update Data Using OLEDB Command Transformation in SSIS 11

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

评论已关闭。