首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

善用 SQL Server 連結伺服器整合遠端 Access 資料庫

     編輯:關於SqlServer

Access 是檔案型資料庫,原生不支援跨伺服器存取。透過 SQL Server 的連結伺服器功能,我們可以將分散在不同位置的 Access 資料庫(.mdb/.accdb)整合至 SQL Server 環境,進而實現異構資料庫(如 Oracle、其他 SQL Server 實例)的互聯,支援分散式查詢、更新、命令與交易。

1. 建立連結伺服器連接本地 Access

可透過「企業管理員」圖形介面,或執行系統預存程序 sp_addlinkedserver 快速建立。語法如下:

sp_addlinkedserver 
    @server = '連結伺服器名稱', 
    @srvproduct = '產品名稱', 
    @provider = 'Microsoft.Jet.OLEDB.4.0', 
    @datasrc = 'Access資料庫完整路徑與檔名';
  • @provider:指定 Microsoft.Jet.OLEDB.4.0 作為 OLE DB 提供者。
  • @datasrc:Access 檔案(.mdb)必須位於本地伺服器的有效路徑(非網路路徑)。

範例: 建立名為 Anna 的連結伺服器,連接 E:\我的文件\DOS.mdb:

EXEC sp_addlinkedserver 
    'Anna', 'Access 2000', 'Microsoft.Jet.OLEDB.4.0', 'E:\我的文件\DOS.mdb';

2. 設定連結伺服器登入對應

同樣可用 GUI 或 sp_addlinkedsrvlogin 設定。語法:

sp_addlinkedsrvlogin 
    @rmtsrvname = '連結伺服器名稱', 
    @useself = FALSE, 
    @locallogin = 'SQL Server 登入帳號', 
    @rmtuser = 'Access 使用者名稱', 
    @rmtpassword = 'Access 密碼';

非安全性資料庫(預設 Admin 無密碼):

EXEC sp_addlinkedsrvlogin 'mytest', FALSE, 'sa', 'admin', NULL;

安全性資料庫(需工作群組資訊檔 .mdw):

  1. 在登錄機碼 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\SystemDB 設定工作群組資訊檔完整路徑。
  2. 建立登入對應:
EXEC sp_addlinkedsrvlogin 'mytest', FALSE, 'sa', '[AccessUser]', '[AccessPwd]';

3. 測試連結伺服器

在「SQL 查詢分析器」中執行分散式查詢。Access 無目錄與結構描述概念,故使用四部分命名法 [連結伺服器]...[資料表名]:

SELECT * FROM mytest...articles;
-- 或使用 OPENQUERY
SELECT * FROM OPENQUERY(mytest, 'SELECT * FROM articles');

4. 程式碼中呼叫連結伺服器

將測試查詢封裝為預存程序,供 ASP/ASP.NET 應用程式呼叫,或直接在應用程式中使用上述分散式查詢語法,發揮連結伺服器的最大彈性與實用性。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved