SQL Server數(shù)據(jù)庫中批量導(dǎo)入數(shù)據(jù)的四種方法總結(jié)
更新時(shí)間:2013年03月28日 17:24:57 作者:
數(shù)據(jù)導(dǎo)入一直是項(xiàng)目人員比較頭疼的問題。其實(shí),在SQL Server中集成了很多成批導(dǎo)入數(shù)據(jù)的方法,接下來為大家介紹下常用的四種批量導(dǎo)入數(shù)據(jù)的方法,感興趣的各位可以參考下哈
在軟件項(xiàng)目實(shí)施的時(shí)候,數(shù)據(jù)導(dǎo)入一直是項(xiàng)目人員比較頭疼的問題。其實(shí),在SQL Server中集成了很多成批導(dǎo)入數(shù)據(jù)的方法。有些項(xiàng)目實(shí)施顧問頭疼的問題,在我們數(shù)據(jù)庫管理員眼中,是小菜一碟。現(xiàn)在的重點(diǎn)就是,如何讓用戶了解這些方法,讓數(shù)據(jù)導(dǎo)入變得輕松一些。
第一:使用Select Into語句
若企業(yè)數(shù)據(jù)庫都采用的是SQL Server數(shù)據(jù)庫的話,則可以利用Select Into語句來實(shí)現(xiàn)數(shù)據(jù)的導(dǎo)入。Select Into語句,他的作用就是把數(shù)據(jù)從另外一個(gè)數(shù)據(jù)庫中查詢出來,然后加入到某個(gè)用戶指定的表中。
在使用這條語句的時(shí)候,需要注意幾個(gè)方面的內(nèi)容。
一是需要在目的數(shù)據(jù)庫中先建立相關(guān)的表。如想把進(jìn)銷存系統(tǒng)數(shù)據(jù)庫(SQLServer)中的產(chǎn)品信息表(Product)導(dǎo)入到ERP系統(tǒng)中的產(chǎn)品信息表(M_Product)中。則前期是在ERP系統(tǒng)的數(shù)據(jù)庫中已經(jīng)建立了這張產(chǎn)品信息表。
二是這種方法只復(fù)制表中的數(shù)據(jù),而不復(fù)制表中的索引。如在進(jìn)銷存系統(tǒng)數(shù)據(jù)中的產(chǎn)品信息表中,在產(chǎn)品編號(hào)、產(chǎn)品種類等字段上建立了索引。則利用Select Into語句把數(shù)據(jù)復(fù)制到ERP系統(tǒng)的表中的時(shí)候,只是復(fù)制了數(shù)據(jù)內(nèi)容的本身,而不會(huì)復(fù)制索引等信息。
三是這條語句使用具有局限性。一般情況下,這只能夠在SQL Server數(shù)據(jù)庫中采用。不過,對于SQL Server不同版本的數(shù)據(jù)庫,如2008或者2003,還都是兼容的。若需要導(dǎo)入的對象數(shù)據(jù)庫不是SQL Server的,則需要采用其他的方法。
四是采用這條語句的話,在目的表中必須不存在數(shù)據(jù)。否則的話,目的表中的數(shù)據(jù)會(huì)被清除。也就是說,這個(gè)語句不支持表與表數(shù)據(jù)的合并。在SQL Server中,有一條類似的語句,可以實(shí)現(xiàn)這個(gè)功能。這條語句就是:Insert Into。他的作用就是把另外一張表中的數(shù)據(jù)插入到當(dāng)前表中。若用戶想要的時(shí)表與表數(shù)據(jù)的合并,則可以采用這條語句。兩者不能夠混淆使用,否則的話,很容易導(dǎo)致數(shù)據(jù)的丟失。
五是以上兩條語句都支持兼容的不同類型的數(shù)據(jù)類型。如在原標(biāo)中,某個(gè)字段的數(shù)據(jù)類型是整數(shù)型,但是在目的表中這個(gè)字段的數(shù)據(jù)類型則是浮點(diǎn)型,只要這個(gè)兩個(gè)數(shù)據(jù)類型本來就兼容的,則在導(dǎo)入的時(shí)候,數(shù)據(jù)庫是允許的。
第二:利用Excel等中間工具進(jìn)行控制
雖然第一種方法操作起來比較簡單,但是其也有一些缺點(diǎn)。如他只支持同一種類型的數(shù)據(jù)庫;不能夠?qū)?shù)據(jù)進(jìn)行過多的干預(yù)等等。一般情況下,若用戶原數(shù)據(jù)準(zhǔn)確度比較高,不需要過多的修改就可以直接拿來用的話,則筆者就已采用第一種方式。
但是,若在原數(shù)據(jù)庫中,數(shù)據(jù)的準(zhǔn)確度不是很高,又或者,有很多數(shù)據(jù)是報(bào)廢的??傊枰獙υ瓟?shù)據(jù)庫的數(shù)據(jù)進(jìn)行整理,才能夠使用的情況,筆者不建議先導(dǎo)入進(jìn)去,再進(jìn)行更改。筆者在遇到這種情況時(shí),喜歡利用Excle作為中間工具。也就是說,先把數(shù)據(jù)中原數(shù)據(jù)庫中導(dǎo)到Excle中。有些數(shù)據(jù)庫,如Oracle數(shù)據(jù)庫,他不支持Excle格式。但是,我們可以把它導(dǎo)為CSV格式的文件。這種文件Excle也可以打得開。
然后,再在Excle中,對記錄進(jìn)行修改。由于Excle是一個(gè)很強(qiáng)的表格處理軟件,所以,其數(shù)據(jù)修改,要比在數(shù)據(jù)庫中直接修改來得方便,來得簡單。如可以利用按時(shí)間排序等功能,把一些長久不用的記錄清楚掉。也可以利用替換等功能,把一些不規(guī)范的字符更改掉。這些原來在數(shù)據(jù)庫中比較復(fù)雜的任務(wù),在Excle等工具中都可以輕松的完成。
等到表中的內(nèi)容修改無誤后,數(shù)據(jù)庫管理員就可以把Excle表格中的文件直接導(dǎo)入到SQL Server數(shù)據(jù)庫中。由于SQL Server與Excel是同一個(gè)父母生的,所以,他們之間的兼容性很好。在Sql Server中提供了直接從Excel文件中導(dǎo)入數(shù)據(jù)的工具。
雖然這要借助中間工具導(dǎo)入數(shù)據(jù),但是,因?yàn)槠涮幚砥饋矸奖恪⒅庇^,所以,筆者在大部分時(shí)候都是采用這種方式。
第三:使用數(shù)據(jù)轉(zhuǎn)換服務(wù)導(dǎo)入數(shù)據(jù)
數(shù)據(jù)轉(zhuǎn)換服務(wù)是SQL Server數(shù)據(jù)庫中提供的一個(gè)非常強(qiáng)大的工具。在SQLServer中,數(shù)據(jù)轉(zhuǎn)換功能有一個(gè)圖形用戶接口,用戶可以在圖形界面中導(dǎo)入數(shù)據(jù),并對數(shù)據(jù)進(jìn)行相應(yīng)的編輯。
另外,數(shù)據(jù)轉(zhuǎn)換服務(wù)還支持COM組件的編程接口。這也就是說,在前臺(tái)應(yīng)用程序開發(fā)的時(shí)候,可以直接調(diào)用數(shù)據(jù)轉(zhuǎn)換服務(wù)。讓用戶通過前臺(tái)應(yīng)用系統(tǒng),而不用在后臺(tái)數(shù)據(jù)庫系統(tǒng)進(jìn)行任何的操作,就可以把數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫系統(tǒng)中去。在前臺(tái)對數(shù)據(jù)庫系統(tǒng)進(jìn)行導(dǎo)入,有一個(gè)明顯的好處,就可以預(yù)先對數(shù)據(jù)的合法性進(jìn)行檢查。如可以利用VB等腳本語言對數(shù)據(jù)進(jìn)行檢驗(yàn)、凈化和一定的轉(zhuǎn)換,以符合目的數(shù)據(jù)庫的需要。
如在員工信息表中的婚姻狀況字段,在Oracle數(shù)據(jù)庫系統(tǒng)中,可能是用0或者1來表示婚姻狀況。0表示未婚,1表示已婚。而在SQL Server數(shù)據(jù)庫中,則利用Y或者N來表示婚姻狀況。Y表示已婚,N表示未婚。在導(dǎo)入數(shù)據(jù)的時(shí)候,若直接把Oracle數(shù)據(jù)庫表中的數(shù)據(jù)導(dǎo)入到SQL Server數(shù)據(jù)庫中,因?yàn)榛橐鰻顩r這個(gè)字段存儲(chǔ)的內(nèi)容類型不同,所以,不能夠直接導(dǎo)。遇到這種情況的話,則就可以在導(dǎo)入數(shù)據(jù)之前,先利用腳本語言對數(shù)據(jù)類型進(jìn)行驗(yàn)證。若不符合要求的,則可以通過腳本語言對數(shù)據(jù)進(jìn)行一定的轉(zhuǎn)換,把0轉(zhuǎn)換為N,把1轉(zhuǎn)換為Y等等。
所以,有時(shí)候程序員在開發(fā)前臺(tái)應(yīng)用程序的時(shí)候,若要開發(fā)數(shù)據(jù)導(dǎo)入功能的話,我們都是建議采用這個(gè)數(shù)據(jù)轉(zhuǎn)換服務(wù)。不但有現(xiàn)成的接口,而且,還可以對數(shù)據(jù)進(jìn)行驗(yàn)證與一定程度的轉(zhuǎn)換。另外,數(shù)據(jù)轉(zhuǎn)換服務(wù)的數(shù)據(jù)導(dǎo)入效率非常的高。即使通過前臺(tái)程序調(diào)用,其性能也比其他方法在同等條件下,要高一個(gè)檔次。而且,隨著數(shù)據(jù)量的增加,數(shù)據(jù)轉(zhuǎn)換服務(wù)的優(yōu)勢會(huì)越來越明顯。
不過,在前臺(tái)應(yīng)用程序調(diào)用數(shù)據(jù)轉(zhuǎn)換服務(wù)的時(shí)候,需要注意。數(shù)據(jù)轉(zhuǎn)換服務(wù)提供的COM接口比較復(fù)雜,所以,前臺(tái)程序調(diào)用數(shù)據(jù)轉(zhuǎn)換服務(wù)的代碼也比較復(fù)雜。若再加上一些腳本語言的話,可能處理起來更加的繁瑣。故一般只有在大型系統(tǒng)上才會(huì)用到這個(gè)接口。若數(shù)據(jù)不多,否則不需要復(fù)雜驗(yàn)證與轉(zhuǎn)換的話,利用這個(gè)接口是大刀小用,得不償失。
第四:異構(gòu)數(shù)據(jù)庫之間的導(dǎo)入導(dǎo)出
雖然第二種、第三種方式都可以完成異構(gòu)數(shù)據(jù)庫之間數(shù)據(jù)的導(dǎo)入導(dǎo)出作業(yè)。不過,在SQL Server中,還提供了另外一種解決方案。即直接在SQL Server數(shù)據(jù)庫中連接到其他類型的數(shù)據(jù)庫上,然后采用Select Into等語句實(shí)現(xiàn)數(shù)據(jù)的導(dǎo)入作業(yè)。
在SQL Server中,提供了兩個(gè)函數(shù)可以幫助我們實(shí)現(xiàn)對非SQL Server數(shù)據(jù)庫的連接。這兩個(gè)函數(shù)分別為Opendatesource與Openrowset。他們的功能基本相同,只是在細(xì)節(jié)上有所差異。
如Opendatesource這個(gè)函數(shù)至能夠打開源數(shù)據(jù)庫的表和視圖,而不能夠?qū)ζ溥M(jìn)行過濾。若用戶只想把源表中的部分?jǐn)?shù)據(jù)導(dǎo)入到SQL Server數(shù)據(jù)庫的表中,則不能對源表直接進(jìn)行過濾。過濾的動(dòng)作需要在SQL Server數(shù)據(jù)庫中進(jìn)行。而Openrowset這個(gè)函數(shù),可以在打開對方數(shù)據(jù)庫的表或者視圖的時(shí)候,直接利用Where等條件限制語句對記錄進(jìn)新過濾。為此,在實(shí)際應(yīng)用中,還是Openrowset這個(gè)函數(shù)使用的頻率比較高。
不過由于其需要用戶寫復(fù)雜的參數(shù),而且,又不能夠提供復(fù)雜的數(shù)據(jù)驗(yàn)證功能,所以在實(shí)際工作中用的并不是很多。在一些小的應(yīng)用系統(tǒng)中,偶爾還可以見到其的蹤影。在一些大的成熟的商業(yè)軟件中,很少采用這種方式,對數(shù)據(jù)進(jìn)行導(dǎo)入。
有時(shí)候,選擇多了,用戶反而不知道如何下手。筆者平時(shí)最喜歡采用的是第二種處理方式。他比較直觀,而且,可以對數(shù)據(jù)進(jìn)行成批的更改與整理。但是,其缺陷就是效率比較低,特別是Excle軟件對于處理大量記錄的時(shí)候,速度比較慢。若這種方式行不通的話,則筆者比較傾向于采用數(shù)據(jù)轉(zhuǎn)換的處理方式。這個(gè)操作起來雖然比較復(fù)雜,但是,其可以提供比較復(fù)雜的驗(yàn)證,而且可以在圖形化的界面中對數(shù)據(jù)進(jìn)行修改,同時(shí)效率也比較高。
第一:使用Select Into語句
若企業(yè)數(shù)據(jù)庫都采用的是SQL Server數(shù)據(jù)庫的話,則可以利用Select Into語句來實(shí)現(xiàn)數(shù)據(jù)的導(dǎo)入。Select Into語句,他的作用就是把數(shù)據(jù)從另外一個(gè)數(shù)據(jù)庫中查詢出來,然后加入到某個(gè)用戶指定的表中。
在使用這條語句的時(shí)候,需要注意幾個(gè)方面的內(nèi)容。
一是需要在目的數(shù)據(jù)庫中先建立相關(guān)的表。如想把進(jìn)銷存系統(tǒng)數(shù)據(jù)庫(SQLServer)中的產(chǎn)品信息表(Product)導(dǎo)入到ERP系統(tǒng)中的產(chǎn)品信息表(M_Product)中。則前期是在ERP系統(tǒng)的數(shù)據(jù)庫中已經(jīng)建立了這張產(chǎn)品信息表。
二是這種方法只復(fù)制表中的數(shù)據(jù),而不復(fù)制表中的索引。如在進(jìn)銷存系統(tǒng)數(shù)據(jù)中的產(chǎn)品信息表中,在產(chǎn)品編號(hào)、產(chǎn)品種類等字段上建立了索引。則利用Select Into語句把數(shù)據(jù)復(fù)制到ERP系統(tǒng)的表中的時(shí)候,只是復(fù)制了數(shù)據(jù)內(nèi)容的本身,而不會(huì)復(fù)制索引等信息。
三是這條語句使用具有局限性。一般情況下,這只能夠在SQL Server數(shù)據(jù)庫中采用。不過,對于SQL Server不同版本的數(shù)據(jù)庫,如2008或者2003,還都是兼容的。若需要導(dǎo)入的對象數(shù)據(jù)庫不是SQL Server的,則需要采用其他的方法。
四是采用這條語句的話,在目的表中必須不存在數(shù)據(jù)。否則的話,目的表中的數(shù)據(jù)會(huì)被清除。也就是說,這個(gè)語句不支持表與表數(shù)據(jù)的合并。在SQL Server中,有一條類似的語句,可以實(shí)現(xiàn)這個(gè)功能。這條語句就是:Insert Into。他的作用就是把另外一張表中的數(shù)據(jù)插入到當(dāng)前表中。若用戶想要的時(shí)表與表數(shù)據(jù)的合并,則可以采用這條語句。兩者不能夠混淆使用,否則的話,很容易導(dǎo)致數(shù)據(jù)的丟失。
五是以上兩條語句都支持兼容的不同類型的數(shù)據(jù)類型。如在原標(biāo)中,某個(gè)字段的數(shù)據(jù)類型是整數(shù)型,但是在目的表中這個(gè)字段的數(shù)據(jù)類型則是浮點(diǎn)型,只要這個(gè)兩個(gè)數(shù)據(jù)類型本來就兼容的,則在導(dǎo)入的時(shí)候,數(shù)據(jù)庫是允許的。
第二:利用Excel等中間工具進(jìn)行控制
雖然第一種方法操作起來比較簡單,但是其也有一些缺點(diǎn)。如他只支持同一種類型的數(shù)據(jù)庫;不能夠?qū)?shù)據(jù)進(jìn)行過多的干預(yù)等等。一般情況下,若用戶原數(shù)據(jù)準(zhǔn)確度比較高,不需要過多的修改就可以直接拿來用的話,則筆者就已采用第一種方式。
但是,若在原數(shù)據(jù)庫中,數(shù)據(jù)的準(zhǔn)確度不是很高,又或者,有很多數(shù)據(jù)是報(bào)廢的??傊枰獙υ瓟?shù)據(jù)庫的數(shù)據(jù)進(jìn)行整理,才能夠使用的情況,筆者不建議先導(dǎo)入進(jìn)去,再進(jìn)行更改。筆者在遇到這種情況時(shí),喜歡利用Excle作為中間工具。也就是說,先把數(shù)據(jù)中原數(shù)據(jù)庫中導(dǎo)到Excle中。有些數(shù)據(jù)庫,如Oracle數(shù)據(jù)庫,他不支持Excle格式。但是,我們可以把它導(dǎo)為CSV格式的文件。這種文件Excle也可以打得開。
然后,再在Excle中,對記錄進(jìn)行修改。由于Excle是一個(gè)很強(qiáng)的表格處理軟件,所以,其數(shù)據(jù)修改,要比在數(shù)據(jù)庫中直接修改來得方便,來得簡單。如可以利用按時(shí)間排序等功能,把一些長久不用的記錄清楚掉。也可以利用替換等功能,把一些不規(guī)范的字符更改掉。這些原來在數(shù)據(jù)庫中比較復(fù)雜的任務(wù),在Excle等工具中都可以輕松的完成。
等到表中的內(nèi)容修改無誤后,數(shù)據(jù)庫管理員就可以把Excle表格中的文件直接導(dǎo)入到SQL Server數(shù)據(jù)庫中。由于SQL Server與Excel是同一個(gè)父母生的,所以,他們之間的兼容性很好。在Sql Server中提供了直接從Excel文件中導(dǎo)入數(shù)據(jù)的工具。
雖然這要借助中間工具導(dǎo)入數(shù)據(jù),但是,因?yàn)槠涮幚砥饋矸奖恪⒅庇^,所以,筆者在大部分時(shí)候都是采用這種方式。
第三:使用數(shù)據(jù)轉(zhuǎn)換服務(wù)導(dǎo)入數(shù)據(jù)
數(shù)據(jù)轉(zhuǎn)換服務(wù)是SQL Server數(shù)據(jù)庫中提供的一個(gè)非常強(qiáng)大的工具。在SQLServer中,數(shù)據(jù)轉(zhuǎn)換功能有一個(gè)圖形用戶接口,用戶可以在圖形界面中導(dǎo)入數(shù)據(jù),并對數(shù)據(jù)進(jìn)行相應(yīng)的編輯。
另外,數(shù)據(jù)轉(zhuǎn)換服務(wù)還支持COM組件的編程接口。這也就是說,在前臺(tái)應(yīng)用程序開發(fā)的時(shí)候,可以直接調(diào)用數(shù)據(jù)轉(zhuǎn)換服務(wù)。讓用戶通過前臺(tái)應(yīng)用系統(tǒng),而不用在后臺(tái)數(shù)據(jù)庫系統(tǒng)進(jìn)行任何的操作,就可以把數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫系統(tǒng)中去。在前臺(tái)對數(shù)據(jù)庫系統(tǒng)進(jìn)行導(dǎo)入,有一個(gè)明顯的好處,就可以預(yù)先對數(shù)據(jù)的合法性進(jìn)行檢查。如可以利用VB等腳本語言對數(shù)據(jù)進(jìn)行檢驗(yàn)、凈化和一定的轉(zhuǎn)換,以符合目的數(shù)據(jù)庫的需要。
如在員工信息表中的婚姻狀況字段,在Oracle數(shù)據(jù)庫系統(tǒng)中,可能是用0或者1來表示婚姻狀況。0表示未婚,1表示已婚。而在SQL Server數(shù)據(jù)庫中,則利用Y或者N來表示婚姻狀況。Y表示已婚,N表示未婚。在導(dǎo)入數(shù)據(jù)的時(shí)候,若直接把Oracle數(shù)據(jù)庫表中的數(shù)據(jù)導(dǎo)入到SQL Server數(shù)據(jù)庫中,因?yàn)榛橐鰻顩r這個(gè)字段存儲(chǔ)的內(nèi)容類型不同,所以,不能夠直接導(dǎo)。遇到這種情況的話,則就可以在導(dǎo)入數(shù)據(jù)之前,先利用腳本語言對數(shù)據(jù)類型進(jìn)行驗(yàn)證。若不符合要求的,則可以通過腳本語言對數(shù)據(jù)進(jìn)行一定的轉(zhuǎn)換,把0轉(zhuǎn)換為N,把1轉(zhuǎn)換為Y等等。
所以,有時(shí)候程序員在開發(fā)前臺(tái)應(yīng)用程序的時(shí)候,若要開發(fā)數(shù)據(jù)導(dǎo)入功能的話,我們都是建議采用這個(gè)數(shù)據(jù)轉(zhuǎn)換服務(wù)。不但有現(xiàn)成的接口,而且,還可以對數(shù)據(jù)進(jìn)行驗(yàn)證與一定程度的轉(zhuǎn)換。另外,數(shù)據(jù)轉(zhuǎn)換服務(wù)的數(shù)據(jù)導(dǎo)入效率非常的高。即使通過前臺(tái)程序調(diào)用,其性能也比其他方法在同等條件下,要高一個(gè)檔次。而且,隨著數(shù)據(jù)量的增加,數(shù)據(jù)轉(zhuǎn)換服務(wù)的優(yōu)勢會(huì)越來越明顯。
不過,在前臺(tái)應(yīng)用程序調(diào)用數(shù)據(jù)轉(zhuǎn)換服務(wù)的時(shí)候,需要注意。數(shù)據(jù)轉(zhuǎn)換服務(wù)提供的COM接口比較復(fù)雜,所以,前臺(tái)程序調(diào)用數(shù)據(jù)轉(zhuǎn)換服務(wù)的代碼也比較復(fù)雜。若再加上一些腳本語言的話,可能處理起來更加的繁瑣。故一般只有在大型系統(tǒng)上才會(huì)用到這個(gè)接口。若數(shù)據(jù)不多,否則不需要復(fù)雜驗(yàn)證與轉(zhuǎn)換的話,利用這個(gè)接口是大刀小用,得不償失。
第四:異構(gòu)數(shù)據(jù)庫之間的導(dǎo)入導(dǎo)出
雖然第二種、第三種方式都可以完成異構(gòu)數(shù)據(jù)庫之間數(shù)據(jù)的導(dǎo)入導(dǎo)出作業(yè)。不過,在SQL Server中,還提供了另外一種解決方案。即直接在SQL Server數(shù)據(jù)庫中連接到其他類型的數(shù)據(jù)庫上,然后采用Select Into等語句實(shí)現(xiàn)數(shù)據(jù)的導(dǎo)入作業(yè)。
在SQL Server中,提供了兩個(gè)函數(shù)可以幫助我們實(shí)現(xiàn)對非SQL Server數(shù)據(jù)庫的連接。這兩個(gè)函數(shù)分別為Opendatesource與Openrowset。他們的功能基本相同,只是在細(xì)節(jié)上有所差異。
如Opendatesource這個(gè)函數(shù)至能夠打開源數(shù)據(jù)庫的表和視圖,而不能夠?qū)ζ溥M(jìn)行過濾。若用戶只想把源表中的部分?jǐn)?shù)據(jù)導(dǎo)入到SQL Server數(shù)據(jù)庫的表中,則不能對源表直接進(jìn)行過濾。過濾的動(dòng)作需要在SQL Server數(shù)據(jù)庫中進(jìn)行。而Openrowset這個(gè)函數(shù),可以在打開對方數(shù)據(jù)庫的表或者視圖的時(shí)候,直接利用Where等條件限制語句對記錄進(jìn)新過濾。為此,在實(shí)際應(yīng)用中,還是Openrowset這個(gè)函數(shù)使用的頻率比較高。
不過由于其需要用戶寫復(fù)雜的參數(shù),而且,又不能夠提供復(fù)雜的數(shù)據(jù)驗(yàn)證功能,所以在實(shí)際工作中用的并不是很多。在一些小的應(yīng)用系統(tǒng)中,偶爾還可以見到其的蹤影。在一些大的成熟的商業(yè)軟件中,很少采用這種方式,對數(shù)據(jù)進(jìn)行導(dǎo)入。
有時(shí)候,選擇多了,用戶反而不知道如何下手。筆者平時(shí)最喜歡采用的是第二種處理方式。他比較直觀,而且,可以對數(shù)據(jù)進(jìn)行成批的更改與整理。但是,其缺陷就是效率比較低,特別是Excle軟件對于處理大量記錄的時(shí)候,速度比較慢。若這種方式行不通的話,則筆者比較傾向于采用數(shù)據(jù)轉(zhuǎn)換的處理方式。這個(gè)操作起來雖然比較復(fù)雜,但是,其可以提供比較復(fù)雜的驗(yàn)證,而且可以在圖形化的界面中對數(shù)據(jù)進(jìn)行修改,同時(shí)效率也比較高。
您可能感興趣的文章:
- SQL Server數(shù)據(jù)庫入門學(xué)習(xí)總結(jié)
- sqlserver數(shù)據(jù)庫導(dǎo)入數(shù)據(jù)操作詳解(圖)
- c#連接sqlserver數(shù)據(jù)庫、插入數(shù)據(jù)、從數(shù)據(jù)庫獲取時(shí)間示例
- 用sql腳本創(chuàng)建sqlserver數(shù)據(jù)庫范例語句
- 將ACCESS數(shù)據(jù)庫遷移到SQLSERVER數(shù)據(jù)庫兩種方法(圖文詳解)
- 如何遠(yuǎn)程連接SQL Server數(shù)據(jù)庫圖文教程
- VB語言使用ADO連接、操作SQLServer數(shù)據(jù)庫教程
- ASP.NET2.0 SQL Server數(shù)據(jù)庫連接詳解
- 在SQL Server數(shù)據(jù)庫中為標(biāo)識(shí)(IDENTITY)列插入顯式值
- Activiti-Explorer使用sql server數(shù)據(jù)庫實(shí)現(xiàn)方法
相關(guān)文章
存儲(chǔ)過程實(shí)現(xiàn)(可帶查詢條件/萬能分頁/通用)
可帶查詢條件的SQL語句的分頁存儲(chǔ)過程,在項(xiàng)目開發(fā)中很實(shí)用,感興趣的朋友可以了解下,希望本文可以鞏固你的存儲(chǔ)過程的相關(guān)知識(shí)2013-01-01SQLserver2000 企業(yè)版 出現(xiàn)"進(jìn)程51發(fā)生了嚴(yán)重的異常"錯(cuò)誤的處理方法
SQL2000 企業(yè)版 出現(xiàn)“進(jìn)程51發(fā)生了嚴(yán)重的異?!卞e(cuò)誤的解決方法,利用了微軟官方的工具。2009-07-07sqlserver2005 行列轉(zhuǎn)換實(shí)現(xiàn)方法
sqlserver2005 行列轉(zhuǎn)換實(shí)現(xiàn)方法,需要的朋友可以參考下。2009-10-10自動(dòng)備份mssql server數(shù)據(jù)庫并壓縮的批處理腳本
windows下,使用mssql命令行工具sqlcmd備份數(shù)據(jù)庫,并調(diào)用rar壓縮;不借助mssql"維護(hù)計(jì)劃"功能,拜托權(quán)限問題。2011-07-07SQL Server數(shù)據(jù)庫的修復(fù)SQL語句
使用數(shù)據(jù)庫的過程中,由于斷電或其他原因,有可能導(dǎo)致數(shù)據(jù)庫出現(xiàn)一些小錯(cuò)誤,比如檢索某些表特別慢,查詢不到符合條件的數(shù)據(jù)等。2008-11-11淺析SQL Server的嵌套存儲(chǔ)過程中使用同名的臨時(shí)表怪像
這篇文章主要介紹了淺析SQL Server的嵌套存儲(chǔ)過程中使用同名的臨時(shí)表怪像,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-02-02