2012-01-06 60 views
0

我有一个用于导入excel数据的SSIS包,我需要在导入数据时向表中添加一列,但是该列是人为设计的数据从sql server数据库中已存在的另一个表加入。SSIS:导入后在目标表中添加一列

有人知道我会怎么做呢?

我试过“派生列”,但是,填充列的数据不是从源Excel数据派生的,而是从数据到另一个表的连接。

谢谢

+0

是否有理由不能仅仅为此使用视图? – JNK 2012-01-06 15:22:32

回答

2

我知道两种方法。你可以在数据流中使用合并连接。这往往是缓慢的,因为你必须对合并的两个来源进行排序。如果你的数据集不大,这可能不会太糟糕。

如果您的数据源很大,我宁愿先在一个数据流中将数据导入工作表。然后,第二个数据流中的数据源(即导入生产表的数据源)将成为一个查询,该查询将工作表连接到要从中获取其他信息的现有表。这样做更耗时,但在这里,我们从来不会导入任何没有工作表的任何东西,因为它可以更轻松地回溯到研究数据导入问题。这也使我更容易在导入之前清理数据,因为我不喜欢在数据流中进行清理。

+0

我倾向于同意第二种解决方案。分级数据并在SQL Server中完成所需的工作。但是,您可以在数据流的上下文中使用合并连接或查找来完成所有操作。 – 2012-01-06 19:12:35

+0

我知道你可以在数据流方面做到这一切,我发现它们比使用t-sql清理数据更难以维护。 – HLGEM 2012-01-09 15:12:32

+0

同意。分阶段处理数据并使用t-sql清理数据会更好。 – 2012-01-09 17:43:57

4

除了来自@HLGEM的方法之外,您还可以使用查找

+0

我alawys忘记查找 – HLGEM 2012-01-09 15:13:08