SQL SSIS帮助。将Excel工作表导入临时表

时间:2010-06-24 18:44:18

标签: sql ssis

我有一个非常简单的任务,即获取Excel工作表并将其导入SQL 2005数据库表。我需要为此创建一个SSIS任务。 Excel工作表没有我需要的所有列直接插入永久sql表,但我知道如何链接到其他表并获取缺少的列。所以我想知道如何将Excel工作表导入到#tempTable(或@VariableTable)然后在临时表中我可以编写我的SQL插入代码(使用temptable以及我将链接的其他表) )在基本的执行SQL任务中。但我无法弄清楚如何使用SSIS做到这一点。当我拖动我的Excel源并尝试将其链接到SQL Server目标时,下拉列表没有temptables选项。

3 个答案:

答案 0 :(得分:0)

SSIS这样做的方法是使用Merge或Lookup转换。我不认为你可以把东西放到这样的临时表中,但你可以有一个ExecuteSQL任务创建一个实际的表,然后你可以在包的末尾放下它。然后,您可以让您的包使用它。

在设计时,您可能需要使用该表来链接,但在实际运行包时不应该在那里。

答案 1 :(得分:0)

首先,您需要为Excel工作表创建临时表。打开SSMS,右键单击数据库,选择任务,导入数据。将导入源设置为excel。浏览到该文件。将目标设置为SQL Server。您可以接受表名或根据需要为其命名。我建议将它命名为有用的东西。根据您对数据类型的理解以及Excel工作表中的内容,您可能需要一段时间才能做到这一点。最终,您将拥有一个接受Excel工作表内容的表格。

其次,使用excel源和sql serve或oledb目的地创建你的ssis包。

答案 2 :(得分:0)

  1. 在控制流程中执行执行SQL任务以创建Excel工作表的目标登台表。

  2. 在数据流中使用excel source和oled db target到staging table在第一步创建。

  3. 3.在控制流中,使用merge或join语句将excel目标登台表与其他源表一起使用到最终目标表。

    感谢 prav