[SQL Server] 匯入資料至SQL Server時,若目的地資料表有FK欄位時的對策
前言
假設資料庫有兩個關聯的資料表(Products產品主檔、ProductCategories產品類別)
現有份Excel檔案,要把它匯入至Products產品主檔表裡
方法其實很簡單,但昨天不知怎的,我居然花2個小時寫程式來實現 囧…
以下記錄使用SQL Server匯入匯出精靈的方法
實作
整個步驟大致是:
1.先把Excel檔案的資料匯入至DB裡臨時用的Table
2.使用SQL語法的Inner join,把該Table的產品類別欄位換算成產品類別ID
3.剛剛使用的SQL語法當作一個子查詢,再餵入insert into Products,即可完成匯入
先對著資料庫右鍵
下一步
選擇資料來源為Excel後再下一步
再選擇匯入目的地資料庫及登入驗證方式後按下一步
直接下一步
因為要匯入Excel的第一個Sheet1,所以選擇…
再下一步
按「完成」開始執行匯入動作
匯入完成之後,到DB找「工作表1$」,接著要下SQL語法換算產品類別ID
之後再下insert into Products語句來新增資料
※如果兩邊Table欄位型別不一致要轉型的話,也可以在這時候處理
整個資料都塞完之後,再把臨時Table 「工作表1$」給刪除即可
結語
匯入資料方法百百種,挑一個好記萬用的來背吧…