将数据从excel导入到Sql Server数据库中的多个表

时间:2011-10-17 19:48:12

标签: sql-server ssis

我有一张excel表,其数据类似于下表:

EmployeeName    Manager Name
E1              M1
E2              M2
E3              M3
E4              M1

我需要将其导出到一个数据库中,该数据库有两个独立的员工和经理表。

我导出的Sql表具有如下结构:

Create Table Manager (Manager_Id int Primary Key Identity(1,1), 
                      ManagerName nvarchar(50))

Create Table Employee (EmployeeID int Primary Key Identity(1,1) ,
                       EmployeeName nvarchar(50), 
                       Manager_Id int) 

ManagerId是employee表中的外部引用。

由于我在Employee表之前需要Manager Table,因此我首先使用SQL Server Import and Export向导成功导入了管理器数据。

我的下一步是将数据导入员工表。这就是问题所在。 现在,我希望来自Sql Server数据库中的表的经理Id和来自Excel工作表的员工姓名。我在Sql语句选项的导入和导出向导中必须有一种方法来编写一个可以引用excel和sql表的查询,但是我收到错误“这不是查询”

是否有更好的方法将数据导入多个表?

2 个答案:

答案 0 :(得分:1)

不是将Employee数据导入Employee表,而是将其导入SQL Server上的Temp表。然后,您将能够编写一个查询,该查询从Temp表中检索员工姓名,将其连接到Manager表,然后插入到真正的Employee表中。

答案 1 :(得分:0)

有很多解决方案,但如果数据集相对较小,我只是在Excel中执行此操作:

  1. 将数据分成Manager和Employee选项卡(将两个列留在Employee选项卡中)
  2. 向两个标签添加一些ID列。
  3. 使用Manager名称上的vlookup功能查找每个员工的相关Manager ID。 Copy& PasteValues可以摆脱你刚才所做的功能。
  4. 使用导入向导将两个表都放入SQL Server。