2011-10-17 82 views
0

我有一個Excel工作表,其中的數據看起來類似下面的表格從Excel導入數據到多個表:在SQL Server數據庫

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) 

經理ID是在僱員表中的外參考。

因爲我需要Employee表之前的Manager表,所以我使用SQL Server導入和導出嚮導首先成功導入了管理器數據。

我的下一步是將數據導入employee表。這就是問題出現的地方。 現在,我想從坐在Sql Server數據庫中的表中獲取管理員標識,並從Excel表中獲取員工姓名。我雖然在Sql Statement選項的Import and Export嚮導中必須有一種方法來編寫一個可以引用excel和sql表的查詢,但是我得到一個錯誤「This is a query」

Is there將數據導入多個表的更好方法?

+0

什麼是您的查詢是給你的錯誤?您是否嘗試創建一個包含員工姓名和經理姓名的表格? – Robert

+0

@Robert:Excel表格現在只有兩列,一列用於員工姓名,另一列用於經理姓名,現在將其移至Sql Server中的兩個表中,一位員工和其他經理。 –

+0

@PowerUser:感謝編輯 –

回答

1

而不是將Employee數據導入到Employee表中,而是將它導入到SQL Server上的Temp表中。然後,您將能夠編寫一個查詢,從Temp表中檢索員工姓名,將其加入Manager表中,然後插入真正的Employee表中。

0

有這許多解決方案,但如果數據集比較小,我只是這樣做在Excel中:

  1. 獨立的數據轉化爲管理人員和員工的選項卡(在員工離開兩列標籤)
  2. 向兩個選項卡添加一些ID列。
  3. 使用管理器名稱上的vlookup函數查找每個員工的相關經理ID。複製& PasteValues來擺脫剛剛完成的功能。
  4. 使用導入嚮導將兩個表都導入到SQL Server中。
+0

SQL表格我要導出到有標識列,所以我不確定我是否可以使用你的解決方案 –

+0

我明白你的觀點。然後這不起作用。祝你的解決方案好運。 – PowerUser