【问题标题】:Using SSIS to import data from excel into multiple tables使用SSIS将数据从excel导入多个表
【发布时间】:2012-05-14 07:56:50
【问题描述】:

我有一张 Excel 表格,其中包含必须保存在 4 个表格中的信息。我必须为每个表创建唯一的 id。我还必须将一些数据插入表 1,然后在那里创建的唯一 id 将用于将数据插入第二个表(参考完整性)。此外,一张表将始终插入要插入的记录,但对于其余 3 张表,如果某些数据已经存在,则必须对其进行更新而不是插入。我是 SSIS 的新手,所以请指导我如何在 SSIS 中继续前进。

【问题讨论】:

  • 这是一个令人难以置信的广泛问题。不如你看一些教程,当你真的有具体问题的时候再在这里提问?
  • 我知道它的范围很广,但是关于我的问题,我所知道的只是 MULTICAST 可能是一个可能的解决方案,但我仍然需要一些指导。

标签: ssis


【解决方案1】:

大量需求:)

首先,here 是一个将 excel 表加载到 sql 数据库的包示例。 您可以轻松地按照它来构建您的包。

区别:

您说您需要在 4 个表上插入相同的数据,因此在您的 excel 源和目标之间,您将添加一个多播组件,而不是 1 个目标,您将拥有 4 个。“多播”将创建 4您的数据的副本,因此您可以插入到您的 4 个表中。

ID 可能是个问题,因为 4 个目标将分别执行,因此您无法获取插入第一个表的 ID 来更新第二个表。我建议您在导入所有内容后在“执行 SQL 任务”上使用 T-SQL。

如果这是不可能的,您将需要有 4 个单独的数据流,在每个数据流中,您执行从您的 excel 读取的插入,并通过查找任务与上一个插入的结果连接

【讨论】:

  • Thanx Diego,正如您提到的“执行 SQL 任务”,即使我也这么想,但我不太清楚。我创建了一个存储过程来将数据插入或更新到 4 个表中。你能指导我这个存储过程将在哪里执行吗?我的意思是所有步骤的顺序。
【解决方案2】:

将其导入到 SQL 服务器上的 Temp 表中。然后,您将能够编写一个从 Temp 表中检索到多个表的查询。

希望这可以根据您的要求解决您的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-18
    • 1970-01-01
    • 2011-04-09
    • 1970-01-01
    • 2013-05-03
    • 2016-11-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多