


下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、在SQLServer數(shù)據(jù)庫中批量導入數(shù)據(jù)的四種方法Mssql數(shù)據(jù)庫教程在SQLServer數(shù)據(jù)庫中批量導入數(shù)據(jù)的四種方法,在軟件項目實施的時候,數(shù)據(jù)導入一直是項目人員比較頭疼的問題。其實,在SQLServer中集成了很多成批導入數(shù)據(jù)的方法。有些項目實施顧問頭疼的問題,在我們數(shù)據(jù)庫管理員眼中,是小菜一碟。現(xiàn)在的重點就是,如何讓用戶了解這些方法,讓數(shù)據(jù)導入變得輕松一些。第一:使用SelectInto語句若企業(yè)數(shù)據(jù)庫都采用的是SQLServer數(shù)據(jù)庫的話,則可以利用SelectInto語句來實現(xiàn)數(shù)據(jù)的導入。SelectInto語句,他的作用就是把數(shù)據(jù)從另外一個數(shù)據(jù)庫中查詢出來,然后加入到某個用戶指定
2、的表中。在使用這條語句的時候,需要注意幾個方面的內容。一是需要在目的數(shù)據(jù)庫中先建立相關的表。如想把進銷存系統(tǒng)數(shù)據(jù)庫(SQLServer)中的產(chǎn)品信息表(Product)導入到ERP系統(tǒng)中的產(chǎn)品信息表(M_Product)中。則前期是在ERP系統(tǒng)的數(shù)據(jù)庫中已經(jīng)建立了這張產(chǎn)品信息表。二是這種方法只復制表中的數(shù)據(jù),而不復制表中的索引。如在進銷存系統(tǒng)數(shù)據(jù)中的產(chǎn)品信息表中,在產(chǎn)品編號、產(chǎn)品種類等字段上建立了索引。則利用SelectInto語句把數(shù)據(jù)復制到ERP系統(tǒng)的表中的時候,只是復制了數(shù)據(jù)內容的本身,而不會復制索引等信息。三是這條語句使用具有局限性。一般情況下,這只能夠在SQLServer數(shù)據(jù)庫中采用
3、。不過,對于SQLServer不同版本的數(shù)據(jù)庫,如2008或者2003,還都是兼容的。若需要導入的對象數(shù)據(jù)庫不是SQLServer的,則需要采用其他的方法。四是采用這條語句的話,在目的表中必須不存在數(shù)據(jù)。否則的話,目的表中的數(shù)據(jù)會被清除。也就是說,這個語句不支持表與表數(shù)據(jù)的合并。在SQLServer中,有一條類似的語句,可以實現(xiàn)這個功能。這條語句就是:InsertInto。他的作用就是把另外一張表中的數(shù)據(jù)插入到當前表中。若用戶想要的時表與表數(shù)據(jù)的合并,則可以采用這條語句。兩者不能夠混淆使用,否則的話,很容易導致數(shù)據(jù)的丟失。五是以上兩條語句都支持兼容的不同類型的數(shù)據(jù)類型。如在原標中,某個字段的數(shù)
4、據(jù)類型是整數(shù)型,但是在目的表中這個字段的數(shù)據(jù)類型則是浮點型,只要這個兩個數(shù)據(jù)類型本來就兼容的,則在導入的時候,數(shù)據(jù)庫是允許的。第二:利用Excel等中間工具進行控制雖然第一種方法操作起來比較簡單,但是其也有一些缺點。如他只支持同一種類型的數(shù)據(jù)庫;不能夠對數(shù)據(jù)進行過多的干預等等。一般情況下,若用戶原數(shù)據(jù)準確度比較高,不需要過多的修改就可以直接拿來用的話,則筆者就已采用第一種方式。但是,若在原數(shù)據(jù)庫中,數(shù)據(jù)的準確度不是很高,又或者,有很多數(shù)據(jù)是報廢的??傊?,需要對原數(shù)據(jù)庫的數(shù)據(jù)進行整理,才能夠使用的情況,筆者不建議先導入進去,再進行更改。筆者在遇到這種情況時,喜歡利用Excle作為中間工具。也就是
5、說,先把數(shù)據(jù)中原數(shù)據(jù)庫中導到Excle中。有些數(shù)據(jù)庫,如Oracle數(shù)據(jù)庫,他不支持Excle格式。但是,我們可以把它導為CSV格式的文件。這種文件Excle也可以打得開。然后,再在Excle中,對記錄進行修改。由于Excle是一個很強的表格處理軟件,所以,其數(shù)據(jù)修改,要比在數(shù)據(jù)庫中直接修改來得方便,來得簡單。如可以利用按時間排序等功能,把一些長久不用的記錄清楚掉。也可以利用替換等功能,把一些不規(guī)范的字符更改掉。這些原來在數(shù)據(jù)庫中比較復雜的任務,在Excle等工具中都可以輕松的完成。等到表中的內容修改無誤后,數(shù)據(jù)庫管理員就可以把Excle表格中的文件直接導入到SQLServer數(shù)據(jù)庫中。由于S
6、QLServer與Excel是同一個父母生的,所以,他們之間的兼容性很好。在SqlServer中提供了直接從Excel文件中導入數(shù)據(jù)的工具。雖然這要借助中間工具導入數(shù)據(jù),但是,因為其處理起來方便、直觀,所以,筆者在大部分時候都是采用這種方式。第三:使用數(shù)據(jù)轉換服務導入數(shù)據(jù)數(shù)據(jù)轉換服務是SQLServer數(shù)據(jù)庫中提供的一個非常強大的工具。在SQLServer中,數(shù)據(jù)轉換功能有一個圖形用戶接口,用戶可以在圖形界面中導入數(shù)據(jù),并對數(shù)據(jù)進行相應的編輯。另外,數(shù)據(jù)轉換服務還支持COM組件的編程接口。這也就是說,在前臺應用程序開發(fā)的時候,可以直接調用數(shù)據(jù)轉換服務。讓用戶通過前臺應用系統(tǒng),而不用在后臺數(shù)據(jù)庫
7、系統(tǒng)進行任何的操作,就可以把數(shù)據(jù)導入數(shù)據(jù)庫系統(tǒng)中去。在前臺對數(shù)據(jù)庫系統(tǒng)進行導入,有一個明顯的好處,就可以預先對數(shù)據(jù)的合法性進行檢查。如可以利用VB等腳本語言對數(shù)據(jù)進行檢驗、凈化和一定的轉換,以符合目的數(shù)據(jù)庫的需要。如在員工信息表中的婚姻狀況字段,在Oracle數(shù)據(jù)庫系統(tǒng)中,可能是用0或者1來表示婚姻狀況。0表示未婚,1表示已婚。而在SQLServer數(shù)據(jù)庫中,則利用Y或者N來表示婚姻狀況。Y表示已婚,N表示未婚。在導入數(shù)據(jù)的時候,若直接把Oracle數(shù)據(jù)庫表中的數(shù)據(jù)導入到SQLServer數(shù)據(jù)庫中,因為婚姻狀況這個字段存儲的內容類型不同,所以,不能夠直接導。遇到這種情況的話,則就可以在導入數(shù)據(jù)
8、之前,先利用腳本語言對數(shù)據(jù)類型進行驗證。若不符合要求的,則可以通過腳本語言對數(shù)據(jù)進行一定的轉換,把0轉換為N,把1轉換為Y等等。所以,有時候程序員在開發(fā)前臺應用程序的時候,若要開發(fā)數(shù)據(jù)導入功能的話,我們都是建議采用這個數(shù)據(jù)轉換服務。不但有現(xiàn)成的接口,而且,還可以對數(shù)據(jù)進行驗證與一定程度的轉換。另外,數(shù)據(jù)轉換服務的數(shù)據(jù)導入效率非常的高。即使通過前臺程序調用,其性能也比其他方法在同等條件下,要高一個檔次。而且,隨著數(shù)據(jù)量的增加,數(shù)據(jù)轉換服務的優(yōu)勢會越來越明顯。不過,在前臺應用程序調用數(shù)據(jù)轉換服務的時候,需要注意。數(shù)據(jù)轉換服務提供的COM接口比較復雜,所以,前臺程序調用數(shù)據(jù)轉換服務的代碼也比較復雜。
9、若再加上一些腳本語言的話,可能處理起來更加的繁瑣。故一般只有在大型系統(tǒng)上才會用到這個接口。若數(shù)據(jù)不多,否則不需要復雜驗證與轉換的話,利用這個接口是大刀小用,得不償失。第四:異構數(shù)據(jù)庫之間的導入導出雖然第二種、第三種方式都可以完成異構數(shù)據(jù)庫之間數(shù)據(jù)的導入導出作業(yè)。不過,在SQLServer中,還提供了另外一種解決方案。即直接在SQLServer數(shù)據(jù)庫中連接到其他類型的數(shù)據(jù)庫上,然后采用SelectInto等語句實現(xiàn)數(shù)據(jù)的導入作業(yè)。在SQLServer中,提供了兩個函數(shù)可以幫助我們實現(xiàn)對非SQLServer數(shù)據(jù)庫的連接。這兩個函數(shù)分別為Opendatesource與Openrowset。他們的功能
10、基本相同,只是在細節(jié)上有所差異。如Opendatesource這個函數(shù)至能夠打開源數(shù)據(jù)庫的表和視圖,而不能夠對其進行過濾。若用戶只想把源表中的部分數(shù)據(jù)導入到SQLServer數(shù)據(jù)庫的表中,則不能對源表直接進行過濾。過濾的動作需要在SQLServer數(shù)據(jù)庫中進行。而Openrowset這個函數(shù),可以在打開對方數(shù)據(jù)庫的表或者視圖的時候,直接利用Where等條件限制語句對記錄進新過濾。為此,在實際應用中,還是Openrowset這個函數(shù)使用的頻率比較高。不過由于其需要用戶寫復雜的參數(shù),而且,又不能夠提供復雜的數(shù)據(jù)驗證功能,所以在實際工作中用的并不是很多。在一些小的應用系統(tǒng)中,偶爾還可以見到其的蹤影。在一些大的成熟的商業(yè)軟件中,很少采用這種方式,對數(shù)據(jù)進行導入。有時候,選擇多了,用戶反而不知道如何下手。筆者平時最喜歡采用的是第二
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公路用地征用合同樣本
- 出租鋼棚廠房合同標準文本
- 農機合伙合同標準文本
- 臨時教師合同樣本6
- led項目改造合同樣本
- 聘設計總監(jiān)合同范本
- 企業(yè)店鋪租售合同樣本
- 內部購買股合同標準文本
- 2025年1月多智能體模擬《阿房宮賦》歷史場景推演教學
- 出讓礦山用地合同標準文本
- GB 1886.239-2016食品安全國家標準食品添加劑瓊脂
- 復雜肘關節(jié)骨折脫位的診治課件
- 2023全球宏觀展望(英文)-高盛
- 5w2H分析法培訓教材課件
- 七大浪費培訓資料課件
- JJF1637-2017 廉金屬熱電偶校準規(guī)范-(高清現(xiàn)行)
- 簡約復古風夏洛蒂勃朗特《簡愛》作品簡介名著讀后感PPT課件
- 《神州謠》課件 部編版二下 寧夏銀川興慶三小 劉靜
- DGTJ08-2128-2021 軌道交通及隧道工程混凝土結構耐久性設計施工技術標準
- 中水、純水系統(tǒng)簡介
- (完整版)10KV配電室安裝工程施工方案
評論
0/150
提交評論