如下所示:
複製代碼 代碼如下:"AWU","102300","ZX240-3","2609997000","2609997000","3016924000","","3091775000","","","QCR0000285",""
"AYE","001800","ZX60","2609997000","2609997000","3016924000","","","","","",""
雖然項目開發了應用程式,解析類似的文字檔,並將記錄儲存到資料庫中,但效率顯然不及大量匯入。為了節約時間,從9:00PM開始,決定先嘗試將文字檔匯入Excel,再將Excel匯入SQL Server2000。(因為之前部份備份工作便是該操作的逆向方式)。
開啟Excel2007,再選擇開啟資料來源的文字檔,系統自動進入“文本匯入嚮導”。
第一步,選擇欄位分割方式,本例採用“分割符號”,適當調整文字檔編碼方式(UTF-8、ANSI等),已保證匯入資料不是亂碼。
第二步,選擇分割符號,文本識別符號(太棒了!當初還在考慮雙引號如何去掉)。
第三步,設定每列資料類型(常規、文本、日期)。點擊完成!
稍微提示下兩個細節問題:
1.如樣本資料第二行第二欄位“001800”,如果在匯入第三步按“常規”類型匯入,則前端“00”會被去掉,類似數位處理辦法,此時如需保留,請選擇“文本”類型。
2.有時來源資料中難免存在格式問題,特別是匯入強約束的資料庫表單時就會報錯。這時就得根據報錯資訊回頭檢查Excel中的資料。測試中遇到了逗號出現在了“,”雙引號內部,導致資料無法匯入等情況。多個雙引號現象:““”等等。
3.資料匯入Excel後,最好在第一行前插入一行,輸入資料庫對應表單的欄位名。不設此行能否實行,還請各位實踐證明:)
介於上述的第二問題,所以推薦先將文字檔匯入Access,通過Access匯入SQL Server。這樣的好處在於Access的資料類型與SQL Server更類似,這樣當文字檔匯入Access時會嚴格檢驗資料的合法性,避免後續的諸多麻煩。
匯入方法也很類似,簡單介紹下:開啟Access2007,選擇外部資料-文字檔,選中文字檔後,同樣出現“匯入文本嚮導”。
第一步,選擇固定寬度或分隔字元。
第二步,選擇分割符類型和文本標識符,可選項“第一行包含欄位名稱”。
第三步,設定欄位名和欄位類型(最有價值的一項)。
第四步,是否建立主鍵。
第五步,完成!
稍微提示一個細節問題:
某些文字檔在Access匯入預覽時,首行前端會有一個亂碼。沒關係,開啟源文字檔,在首行開頭斷行符號,建立一個空行即可。匯入資料後,在Access表中再次刪除首行記錄。
最後通過SQL Server企業管理器,選中需重新匯入的表單,右鍵選擇匯入資料。繼續下一步吧:)SQL Server匯入資料時也會嚴格匹配記錄的資料類型是否匹配,如果不匹配,則此批次的資料匯入均失敗。
OK,先分享這些吧。更多技巧,歡迎大家一起來豐富。Office系列的活用和MS軟體間的巧用真是很強大,需要慢慢挖掘:) SQL Server匯入資料的更多技巧,我也需要再多學習下!