SQL Server 2008匯入資料

我需要台灣郵政資料,所以上去中華郵政,現在中華郵政很不錯,有提供電子檔或軟體給大家下載使用,而我需要在資料庫建台灣郵政資料,而中華郵政有提供3碼與5碼郵政資料電子檔,所以就下載回來。

中華郵政下載頁

原先我很呆,因為以前的SQL Server Express版本,記得是沒有匯入功能,想要使用匯入功能,那可是要花$.$,而我也沒想那怎多,處理的方法有二,一是寫段程式,將Excel檔的資料轉存到SQL Server中,二是,建好資料表及資料欄位,然後用「Copy & Paste」的古老方法,因為想快點完成功工作,所以我選擇了方法二。

結果,沒用沒事,用了看起來是最快的方法,結果速度奇慢無比,在從Excel copy to SQL Server過程裡,SSMS完全無法動作,而且Paste速度奇慢,只能看到畫面下面新增成功的資料數一筆一筆慢慢的增加,但Excel中有58865筆資料,Paste一次約要40分鐘以上,天呀~是給我時間泡Coffee,看報紙嗎?

不行。

找了找,試了試,答案原來那麼簡單。先說答案,再來看操作。答案就是,SQL Server 2008 Express支援匯出、匯入功能。原本搞了一下午的工作,在短短的數十秒內被秒殺~秒殺~秒殺~秒殺~秒殺~秒殺~秒殺~秒殺(看了好爽,再多看幾次)。

這次的經驗也讓我學到,以前沒有不代表現在沒有,以前有的也不代表現在會有。把每一次當成全新的開始,好好的學習。

接下來我們看看操作。

我們把台灣郵政資料匯入範例資料庫Northwind:

1. 先下載台灣郵政資料(3碼、5碼隨便),解出Excel(*.xls)檔案;
2. 在SSMSE → Northwind → 右鍵 → 工作;



我們選擇「匯入資料」→ 出現「匯入和匯出精靈」;



在「選擇資料來源」頁面:

資料來源:目前有17種資料來源可以選擇,常用的Access / Excel都有支援,看了好高興,資料來源下方面設定選項會依你選擇不同的資料來源有所不同。我們選Excel。




Excel連接設定:

Excel檔案路徑:選擇Excel所在路徑。
Excel版本:系統會自動偵測。
第一個資料列有資料行名稱。(依情況自行勾選,我們的實例中是不能勾選)



選擇目的地及設定驗證方式:




目的地不一定是SQL Server,也就是說,你可以使用SSMS工具來做資料轉匯的工作,我之前都是使用Access在做這方面的工作。(但我未測試)

指定資料表複製或查詢



我們可以選擇從資料表來匯入,或是寫SQL語法過濾後來匯入;

選擇來源資料表和檢視


選擇要預覽的資料表,然後按下預覽鈕;



執行封裝:也就是執行匯入工作;



成功執行訊息;



這就我們就完成了Excel to SQL Server資料匯入的工作。

真的是「快又有效」。

但有一點要注意,就是匯入的資料格式都是採預設值,如欄位的資料型態都是nvarchar(255),還有欄位名稱是F1, F2, F3, F4,這些事後要記得修改。

順便看一下台灣郵政資料的Schema:

TaiwanPost(<ZipCode,nchar(5)>,<City,nchar(3)>,<Area,nchar(3)>,<Road,nvarchar(11)>,<Scoop,nvarchar(23)>)

沒有留言:

張貼留言

感謝您的留言,如果我的文章你喜歡或對你有幫助,按個「讚」或「分享」它,我會很高興的。