我有一个简单的包,可以将数据从源移动到目标,但是我想在运行时添加新列。 示例源表包含列a,b和c。 我在包的开头有一个SQL任务,它根据另一个表中的值创建一个新的列,如+' _' + b。 我的问题是如何在运行时将此列添加到包的源。
答案 0 :(得分:1)
我假设您要在第一个表中添加2列的派生列,并将它们添加到第二个表中。
以下是如何执行此操作的基本示例(仅使用临时表进行说明)。
首先,创建一个包含2列和单行的临时表:
SELECT 'a' AS ColA, 'b' AS ColB
INTO #tmp
接下来创建一个临时表来插入值和派生列(ColC
):
CREATE TABLE #tmp2 (ColA VARCHAR(1), ColB VARCHAR(1), ColC VARCHAR(3))
插入第一张表中的数据并合并ColA + '_' + ColB
:
INSERT INTO #tmp2
( ColA, ColB, ColC )
SELECT ColA, ColB, ColA + '_' + ColB
FROM #tmp
SELECT * FROM #tmp2
输出:
ColA ColB ColC
--------------------
a b a_b