SSIS 中的复制列转换会复制源列。就像复制列数据并粘贴到新列中一样。这是一个重要的转换,因为如果我们想对单个列执行多个操作,我们可以创建多个副本。之后,我们可以对一个副本执行一个操作。
例如,我们有一个名为“产品价格”的列,我们想计算经销商价格、分销商价格、含增值税价格以及加损耗成本的价格。现在,我们使用 SSIS 复制列转换创建了用于上述要求的重复列。然后,我们将分别计算经销商、分销商、增值税等价格。
SSIS 复制列转换示例
步骤 1:将数据流任务从 SSIS 工具箱拖放到控制流区域。

双击数据流任务并打开数据流选项卡。有关更多转换,请参见 >> 此处。
步骤 2:将 OLE DB 源、复制列转换从工具箱拖放到数据流区域。双击数据流区域中的 OLEDB 源以打开 连接管理器 设置。它还提供了选择包含源数据的表的选项。

在此 SSIS 复制列转换示例中使用的 SQL 命令文本是
SELECT [EnglishProductName]
,[StandardCost]
,[Color]
,[ListPrice]
,[DaysToManufacture]
FROM [AdventureWorksDW2014].[dbo].[DimProduct]
WHERE [StandardCost] IS NOT NULL
步骤 3:单击列选项卡以验证列。在此选项卡中,我们还可以取消勾选不需要的列。

配置 SSIS 复制列转换
步骤 4:单击“确定”并将箭头从 OLE DB 源拖放到复制列转换。双击 SSIS 复制列转换并选择要复制的列。

我们复制了 [Standard Cost] 和 color 列,并将它们命名为 Product price 和 Product Color。默认情况下,复制的列在 Output Alias 中称为 Copy of Column Name,但您可以根据需要编辑此名称。
单击“确定”。接下来,将 OLE DB 目标拖放到数据流区域。
步骤 5:现在,我们需要提供 OLE DB 连接管理器和目标的表详细信息。因此,双击 OLE DB 目标并提供所需信息。

我们将输出存储在 Adventure Works DW 2014 数据库的 [Copy Column Transformation in ssis] 中。
步骤 6:单击 SSIS 复制列转换映射选项卡以查看源列与目标列的映射。

单击“确定”以完成复制列转换的包设计。让我们运行包。

让我们打开 Management Studio 来检查结果
SELECT [EnglishProductName]
,[StandardCost]
,[Color]
,[ListPrice]
,[DaysToManufacture]
,[Product Price]
,[Product Color]
FROM [Copy Column Transformation]

您可以看到额外的列 [Product Price] 和 [Product Color],其数据与 [standard cost] 和 [color] 相同。