如何将单个CSV文件中的数据加载到具有关系的多个表中?

时间:2013-02-06 11:41:37

标签: sql-server csv ssis flat-file

我有一个CSV文件,我需要将其加载到SQL数据库中。问题是,我需要将一些数据拆分成不同的表。在加载期间,我需要确保,当第一个部分加载到第一个表时,我得到的ID将在我尝试加载数据库中的其他数据时放入第二个表中的外键字段。 / p>

如何通过维护数据完整性将数据加载到多个表中,数据来自CSV文件?

1 个答案:

答案 0 :(得分:0)

- 我的源文件

Part1,Part2
A,a
B,b
C,c

- 步骤

  1. 创建临时表

    CREATE TABLE [dbo]。[Part1And2](     [RowID] [int] IDENTITY(1,1)NOT NULL,     [Part1] varchar NULL,     [Part2] varchar NULL )ON [PRIMARY]

  2. 使用Exceute SQL Task

  3. 截断此表
  4. DFT 1:将文件加载到临时表中。现在,Part1和Part2字段集合在一起。 来源:您的源文件 目的地:您创建的表格。

  5. DFT 2:拆分数据 来源:您刚加载的临时表 将其提供给组播tsk 从多播创建两个输出并将它们连接到各个表(Say Part1和Part2) 选择每个表的字段     在我们的示例中,表Part1将有两个字段RowID和Part1     表第2部分:RowID和Part2

  6. 这只是一个起点。想想当你得到下一组文件时你会做什么。身份证如何? 被分配?