我有一个非常简单的任务,即获取Excel工作表并将其导入SQL 2005数据库表。我需要为此创建一个SSIS任务。 Excel工作表没有我需要的所有列直接插入永久sql表,但我知道如何链接到其他表并获取缺少的列。所以我想知道如何将Excel工作表导入到#tempTable(或@VariableTable)然后在临时表中我可以编写我的SQL插入代码(使用temptable以及我将链接的其他表) )在基本的执行SQL任务中。但我无法弄清楚如何使用SSIS做到这一点。当我拖动我的Excel源并尝试将其链接到SQL Server目标时,下拉列表没有temptables选项。
答案 0 :(得分:0)
SSIS这样做的方法是使用Merge或Lookup转换。我不认为你可以把东西放到这样的临时表中,但你可以有一个ExecuteSQL任务创建一个实际的表,然后你可以在包的末尾放下它。然后,您可以让您的包使用它。
在设计时,您可能需要使用该表来链接,但在实际运行包时不应该在那里。
答案 1 :(得分:0)
首先,您需要为Excel工作表创建临时表。打开SSMS,右键单击数据库,选择任务,导入数据。将导入源设置为excel。浏览到该文件。将目标设置为SQL Server。您可以接受表名或根据需要为其命名。我建议将它命名为有用的东西。根据您对数据类型的理解以及Excel工作表中的内容,您可能需要一段时间才能做到这一点。最终,您将拥有一个接受Excel工作表内容的表格。
其次,使用excel源和sql serve或oledb目的地创建你的ssis包。
答案 2 :(得分:0)
在控制流程中执行执行SQL任务以创建Excel工作表的目标登台表。
在数据流中使用excel source和oled db target到staging table在第一步创建。
3.在控制流中,使用merge或join语句将excel目标登台表与其他源表一起使用到最终目标表。
感谢 prav