文本、Excel、Access數(shù)據(jù)導(dǎo)入SQL Server2000的方法

昨天參加一個(gè)項(xiàng)目的維護(hù),因?yàn)楦鞣N原因,數(shù)據(jù)在不同服務(wù)器上不一致,所以需要重新將數(shù)據(jù)庫清空一次,并將整理后的數(shù)據(jù)重新導(dǎo)入。需導(dǎo)入的數(shù)據(jù)源為文本文件,記錄以行存儲,“,”逗號分割各字段,每個(gè)字段值用“”雙引號封閉。

如下所示:
代碼如下:
“AWU”,”102300″,”ZX240-3″,”2609997000″,”2609997000″,”3016924000″,””,”3091775000″,””,””,”QCR0000285″,””
“AYE”,”001800″,”ZX60″,”2609997000″,”2609997000″,”3016924000″,””,””,””,””,””,””

雖然項(xiàng)目開發(fā)了應(yīng)用程序,解析類似的文本文件,并將記錄存儲到數(shù)據(jù)庫中,但效率顯然不及批量導(dǎo)入。為了節(jié)約時(shí)間,從9:00PM開始,決定先嘗試將文本文件導(dǎo)入Excel,再將Excel導(dǎo)入SQL Server2000。(因?yàn)橹安糠謧浞莨ぷ鞅闶窃摬僮鞯哪嫦蚍绞剑?/p>

打開Excel2007,再選擇打開數(shù)據(jù)源的文本文件,系統(tǒng)自動進(jìn)入“文本導(dǎo)入向?qū)А薄?br />第一步,選擇字段分割方式,本例采用“分割符號”,適當(dāng)調(diào)整文本文件編碼方式(UTF-8、ANSI等),已保證導(dǎo)入數(shù)據(jù)不是亂碼。
第二步,選擇分割符號,文本識別符號(太棒了!當(dāng)初還在考慮雙引號如何去掉)。
第三步,設(shè)置每列數(shù)據(jù)類型(常規(guī)、文本、日期)。點(diǎn)擊完成!
稍微提示下兩個(gè)細(xì)節(jié)問題:
1.如示例數(shù)據(jù)第二行第二字段“001800”,如果在導(dǎo)入第三步按“常規(guī)”類型導(dǎo)入,則前端“00”會被去掉,類似數(shù)字的處理辦法,此時(shí)如需保留,請選擇“文本”類型。
2.有時(shí)源數(shù)據(jù)中難免存在格式問題,特別是導(dǎo)入強(qiáng)約束的數(shù)據(jù)庫表單時(shí)就會報(bào)錯(cuò)。這時(shí)就得根據(jù)報(bào)錯(cuò)信息回頭檢查Excel中的數(shù)據(jù)。測試中遇到了逗號出現(xiàn)在了“,”雙引號內(nèi)部,導(dǎo)致數(shù)據(jù)無法導(dǎo)入等情況。多個(gè)雙引號現(xiàn)象:““”等等。
3.數(shù)據(jù)導(dǎo)入Excel后,最好在第一行前插入一行,輸入數(shù)據(jù)庫對應(yīng)表單的字段名。不設(shè)此行能否實(shí)行,還請各位實(shí)踐證明:)

介于上述的第二問題,所以推薦先將文本文件導(dǎo)入Access,通過Access導(dǎo)入SQL Server。這樣的好處在于Access的數(shù)據(jù)類型與SQL Server更類似,這樣當(dāng)文本文件導(dǎo)入Access時(shí)會嚴(yán)格檢驗(yàn)數(shù)據(jù)的合法性,避免后續(xù)的諸多麻煩。

導(dǎo)入方法也很類似,簡單介紹下:打開Access2007,選擇外部數(shù)據(jù)-文本文件,選中文本文件后,同樣出現(xiàn)“導(dǎo)入文本向?qū)А薄?br />第一步,選擇固定寬度或分隔符。
第二步,選擇分割符類型和文本標(biāo)識符,可選項(xiàng)“第一行包含字段名稱”。
第三步,設(shè)置字段名和字段類型(最有價(jià)值的一項(xiàng))。
第四步,是否建立主鍵。
第五步,完成!
稍微提示一個(gè)細(xì)節(jié)問題:
某些文本文件在Access導(dǎo)入預(yù)覽時(shí),首行前端會有一個(gè)亂碼。沒關(guān)系,打開源文本文件,在首行開頭回車,建立一個(gè)空行即可。導(dǎo)入數(shù)據(jù)后,在Access表中再次刪除首行記錄。
最后通過SQL Server企業(yè)管理器,選中需重新導(dǎo)入的表單,右鍵選擇導(dǎo)入數(shù)據(jù)。繼續(xù)下一步吧:)SQL Server導(dǎo)入數(shù)據(jù)時(shí)也會嚴(yán)格匹配記錄的數(shù)據(jù)類型是否匹配,如果不匹配,則此批次的數(shù)據(jù)導(dǎo)入均失敗。
OK,先分享這些吧。更多技巧,歡迎大家一起來豐富。Office系列的活用和MS軟件間的巧用真是很強(qiáng)大,需要慢慢挖掘:) SQL Server導(dǎo)入數(shù)據(jù)的更多技巧,我也需要再多學(xué)習(xí)下!

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊6 分享