SQL連結的伺服器訪問遠程Access資料庫

來源:互聯網
上載者:User

由於Access資料庫是一種檔案型資料庫,所以無法跨伺服器進行訪問。下面我們來介紹一下如何利用SQL Server 的連結的伺服器,把地理上分散的Access 資料庫整合起來,使 Access 資料庫具有跨越 Web 服務器群的能力。此方法還可以使 Access 資料庫與SQL Server資料庫,甚至 Oracle 等網路資料庫串連起來,實現異構資料庫的互連,最終執行分布式的查詢、更新、命令和事務。

1.建立連結的伺服器,串連本地 Access 資料庫

建立連結的伺服器可以用“企業管理器”,也可以執行系統預存程序 sp_addlinkedserver 來完成。用系統預存程序相對快捷一些,格式為:

sp_addlinkedserver '連結的伺服器名', '產品名', 'Microsoft.Jet.OLEDB.4.0', 'Access資料庫路徑及檔案名稱'。  

指定 Microsoft.Jet.OLEDB.4.0 作為 provider_name,指定 Access 資料庫檔案的完整路徑名作為 data_source。.mdb 資料庫檔案必須駐留在本機伺服器上,路徑必須是伺服器上的有效路徑。  

例如,本例建立一個名為Anna的連結的伺服器,對 E:\我的文件\ 檔案夾下名為 DOS.mdb 的 Access 資料庫進行操作,則在“SQL查詢分析器”中執行: 

sp_addlinkedserver 'Anna', 'Access 2000', 'Microsoft.Jet.OLEDB.4.0', 'E:\我的文件\DOS.mdb'  
 
2.建立連結的伺服器登入映射

同樣可以用“企業管理器”或預存程序來完成。預存程序的格式為:  

sp_addlinkedsrvlogin '連結的伺服器', false, 'SQLServer登入名稱', 'admin', NULL  

為訪問非保密的 Access 資料庫,試圖訪問 Access 資料庫的 SQL Server 登入應該有一個為使用者 Admin 定義的沒有密碼的登入映射,下例使得本機使用者 sa 可以訪問名為 mytest 的連結的伺服器:  

sp_addlinkedsrvlogin 'mytest', false, 'sa', 'admin', NULL  

要訪問保密的 Access 資料庫,需使用登錄編輯程式配置註冊表,以便使用 Access 的正確的工作群組資訊檔案。使用登錄編輯程式向該登錄機碼中添加 Access 使用的工作群組資訊檔案的完整路徑名稱:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\SystemDB 

配置了登錄機碼後,請使用 sp_addlinkedsrvlogin 建立從本地登入到 Access 登入的登入映射: 

sp_addlinkedsrvlogin 'mytest', false, 'sa', '[AccessUser]', '[AccessPwd]'  

連結的伺服器和連結的伺服器登入映射建立完畢,可以在企業管理器裡進行查看。  

3.連結的伺服器的測試

可以在“SQL查詢分析器”裡對建立的連結的伺服器進行測試。由於 Access 資料庫沒有目錄和架構名稱,因此,基於 Access 的連結的伺服器中的表可以在分散式查詢中使用 [linked_server]...[table_name] 的四部分名稱進行引用。下例從名為 mytest 的連結的伺服器中檢索 articles 表的所有行:  

Select * from mytest...articles  
或者:Select * from OpenQuery(mytest, 'Select * from .articles') 
 
4.用代碼訪問連結的伺服器的 Access 資料庫

只有實現用代碼訪問連結的伺服器的 Access 資料庫,才使得連結的伺服器發揮了最大的靈活性和實用性。可以使用三中的測試連結的伺服器的代碼建立預存程序,供 Asp 代碼調用,也可以直接在 Asp 代碼中調用連結的伺服器。



相關文章

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。