Access導(dǎo)入到SQL Server數(shù)據(jù)庫(kù)中的三種方法

2010-08-28 10:56:22來(lái)源:西部e網(wǎng)作者:

SQL Server數(shù)據(jù)庫(kù)以2005為例,導(dǎo)入方法如下:

一.使用SQL Server的數(shù)據(jù)庫(kù)導(dǎo)入/導(dǎo)出功能。首先在要導(dǎo)入到的SQL Srever數(shù)據(jù)庫(kù)上右鍵,選擇“任務(wù)”,然后選擇“導(dǎo)入數(shù)據(jù)”,按照提示下一步直到完成即可成功將Access數(shù)據(jù)庫(kù)導(dǎo)入到SQL Server數(shù)據(jù)庫(kù)中,此種方法如果SQL Server數(shù)據(jù)庫(kù)中沒有相應(yīng)的數(shù)據(jù)表,則會(huì)自動(dòng)創(chuàng)建改表,但是約束等表關(guān)系不會(huì)同步導(dǎo)入,如果SQL Server中有相同名稱并且屬性相同的數(shù)據(jù)表,則會(huì)直接將Access數(shù)據(jù)庫(kù)中的對(duì)應(yīng)表的數(shù)據(jù)導(dǎo)入。

在導(dǎo)入過(guò)程中,還可以通過(guò)SQL語(yǔ)句指定要導(dǎo)入的數(shù)據(jù)。

使用這種方法一般會(huì)出現(xiàn)以下兩種錯(cuò)誤:

(1)無(wú)法建立數(shù)據(jù)流連接
為連接管理器“{FFBF32BF-EE84-4F94-ACDB-D4C5AC4C2941}”指定的連接類型“OLEDB”未被識(shí)別為有效的連接管理器類型。當(dāng)視圖創(chuàng)建未知連接類型的連接管理器時(shí)會(huì)返回此錯(cuò)誤。請(qǐng)檢查連接類型名稱的拼寫是否正確。
(2)無(wú)法連接源組件
找不到連接“SourceConnectionOLEDB”。如果找不到特定的連接元素,Connections集合將發(fā)生此錯(cuò)誤。
其他信息:
找不到連接“SourceConnectionOLEDB”。如果找不到特定的連接元素,Connections集合將發(fā)生此錯(cuò)誤。
({0DE0CDBB-BCD6-4261-A118-B0CB22DA3C4A})

具體解決辦法是打開SqlServer Configuration Manage,右鍵單擊“Sql Server Integration Services”,選擇“屬性”,將登錄身份修改為“Local System(本地系統(tǒng))”,然后重新啟動(dòng)該服務(wù)。

二.使用Access數(shù)據(jù)庫(kù)的數(shù)據(jù)升遷功能。首先點(diǎn)擊“工具”菜單,選擇“數(shù)據(jù)庫(kù)實(shí)用工具”,選擇“升遷向?qū)А保@是會(huì)提示你該功能尚未安裝,需要安裝XXX之類的信息,點(diǎn)擊安裝,等待安裝成功后,即可彈出“升遷向?qū)А睂?duì)話框,按照提示下一步直到完成,即可將Access數(shù)據(jù)庫(kù)導(dǎo)入到SQL Server數(shù)據(jù)庫(kù)中。使用此種方法的好處是Access數(shù)據(jù)庫(kù)中的所有數(shù)據(jù)以及表關(guān)系都會(huì)被原樣導(dǎo)入到SQL Server數(shù)據(jù)庫(kù)中。

三.使用SQL語(yǔ)句批量導(dǎo)入。1當(dāng)我們只需要導(dǎo)入Access數(shù)據(jù)庫(kù)中的指定表以及指定表的指定列到SQL Server數(shù)據(jù)庫(kù)中時(shí),前面的兩種方法就顯得不那么方便了。而使用SQL語(yǔ)句導(dǎo)入可以方便快捷的導(dǎo)入我們需要的數(shù)據(jù)。具體代碼如下

(1)SQL Serve數(shù)據(jù)庫(kù)中已存在要導(dǎo)入數(shù)據(jù)的表.(這樣可以事先按照要導(dǎo)入的Access數(shù)據(jù)庫(kù)的數(shù)據(jù)表創(chuàng)建好需要的關(guān)系)

Insert into table(tid,tname)SELECT id,nameFROM OPENDATASOURCE ('Microsoft.Jet.OLEDB.4.0', 'Data Source="c:\Shop.mdb";User ID=Admin;Password=' )...ShopGoods

(2)SQL Server數(shù)據(jù)庫(kù)中不存在要存儲(chǔ)導(dǎo)入數(shù)據(jù)的表.(使用下面的代碼會(huì)直接在SQL Server數(shù)據(jù)庫(kù)中創(chuàng)建相應(yīng)的數(shù)據(jù)表)

SELECT id,nameINTO table(tid,tname)FROM OPENDATASOURCE ('Microsoft.Jet.OLEDB.4.0', 'Data Source="c:\Shop.mdb";User ID=Admin;Password=' )...ShopGoods

其中,table是SQL Server中用來(lái)存儲(chǔ)Access導(dǎo)入數(shù)據(jù)的數(shù)據(jù)表名,ShopGoods是指要導(dǎo)入到SQL Server中的Access數(shù)據(jù)庫(kù)中的數(shù)據(jù)表名。前面的三個(gè)點(diǎn)不能省略。

但使用這種方法時(shí)有可能出現(xiàn)以下錯(cuò)誤:

SQL Server 阻止了對(duì)組件 'Ad Hoc Distributed Queries' 的 STATEMENT'OpenRowset/OpenDatasource' 的訪問,因?yàn)榇私M件已作為此服務(wù)器安全配置的一部分而被關(guān)閉。系統(tǒng)管理員可以通過(guò)使用 sp_configure 啟用 'Ad Hoc Distributed Queries'。有關(guān)啟用 'Ad Hoc Distributed Queries' 的詳細(xì)信息,請(qǐng)參閱 SQL Server 聯(lián)機(jī)叢書中的 "外圍應(yīng)用配置器"。

具體解決辦法是使用如下語(yǔ)句啟用“'Ad Hoc Distributed Querie”

EXEC sp_configure 'show advanced options', 1 GO RECONFIGURE GO EXEC sp_configure 'Ad Hoc Distributed Queries', 1 GO RECONFIGURE GO

附:我是個(gè)即將畢業(yè)的新人,工作中遇到的問題會(huì)上網(wǎng)查詢解決方法并一一加以分析嘗試,上文是我今天工作中遇到的問題,引用了一些網(wǎng)絡(luò)內(nèi)容,請(qǐng)?jiān)髡哒徑狻?/P>

本人畢竟學(xué)識(shí)有限,經(jīng)驗(yàn)尚欠,文中某些表述可能不準(zhǔn)確或有問題,歡迎大家加以指正與指導(dǎo)。

贊助商鏈接: