共用方式為


OLE DB Provider for Jet

更新: 2005 年 12 月 5 日

Microsoft OLE DB Provider for Jet 提供 Microsoft Access 資料庫個 OLE DB 介面,讓 SQL Server 2005 分散式查詢可查詢 Access 資料庫及 Excel 試算表。

若要建立連結伺服器來存取 Access 資料庫

  1. 執行 sp_addlinkedserver 來建立連結伺服器,並指定 Microsoft.Jet.OLEDB.4.0 作為 provider_name,並將 Access .mdb 資料庫檔案的完整路徑名稱指定為 data_source。.mdb 資料庫檔案必須位在伺服器上。data_source 是在伺服器上評估,而不是在用戶端上評估,而且路徑在伺服器中必須是有效的。

    例如,若要建立一個名稱為 Nwind 的連結伺服器,並對 c:\mydata directory 中名稱為 Nwind.mdb 的 Access 資料庫運作,請執行:

    sp_addlinkedserver 'Nwind', 'Access', 'Microsoft.Jet.OLEDB.4.0', 
       'c:\mydata\Nwind.mdb'
    
  2. 若要存取不安全的 Access 資料庫,嘗試存取 Access 資料庫的 SQL Server 登入應該要定義登入對應,對應到使用者名稱 Admin 但沒有密碼。

    以下範例可讓本機使用者 Joe 能夠存取名稱為 Nwind 的連結伺服器。

    sp_addlinkedsrvlogin 'Nwind', false, 'Joe', 'Admin', NULL
    

    若要存取安全的 Access 資料庫,請使用登錄編輯器設定登錄,以使用 Access 所用的正確「工作群組資訊」檔案。使用 [登錄編輯器] 將 Access 所用之「工作群組資訊」檔案的完整路徑名稱加到此登錄項目:

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

  3. 登錄項目設定完成後,使用 sp_addlinkedsrvlogin 來建立本機登入到 Access 登入的登入對應:

    sp_addlinkedsrvlogin 'Nwind', false, 'Joe',
        'AccessUser', '034fhd99dl'
    
ms175866.security(zh-tw,SQL.90).gif安全性注意事項:
這個範例不使用 Windows 驗證。密碼會以未經加密的方式傳輸。在儲存於磁碟的資料來源定義和指令碼中、備份中和記錄檔中,可能看得見密碼。請勿在這種連接中使用管理員密碼。如需您環境的特定安全性指引,請連絡您的網路管理員。

Access 資料庫並沒有資料庫目錄與結構描述名稱。因此,您可使用 linked_server**...**table_name 格式的四部份名稱,在分散式查詢內參考 Access 型連結伺服器中的資料表。

以下範例將從名稱為 Nwind 之連結伺服器的 Employees 資料表中,擷取所有的資料列。

SELECT * 
FROM Nwind...Employees

若要對 Excel 試算表建立連結伺服器

Microsoft OLE DB Provider for Jet 4.0 可用來存取 Microsoft Excel 試算表。

  • 若要建立可存取 Excel 試算表的連結伺服器,請使用以下範例的格式:

    EXEC sp_addlinkedserver EXCEL,
         'Jet 4.0',
         'Microsoft.Jet.OLEDB.4.0',
         'c:\data\MySheet.xls', 
          NULL,
         'Excel 5.0;'
    
    GO
    
  • 若要存取 Excel 試算表中的資料,請建立資料格範圍與某個名稱的關聯性。您可使用範圍名稱作為資料表名稱來存取具名範圍。以下查詢可使用上個範例中建立的連結伺服器,來存取名稱為 SalesData 的具名範圍。

    SELECT *
    FROM EXCEL...SalesData
    GO
    

    當您將資料列插入資料格的具名範圍時,此資料列會加到資料格之具名範圍內的最後一個資料列後面。因此,若您想要將資料列 rA 插入到資料行標題後面,請將資料行標題資料格與一個名稱建立關聯,然後再使用該名稱作為資料表名稱。當插入資料列時,資料格範圍會自動擴大。

若要對格式化文字檔建立連結伺服器

Microsoft OLE DB Provider for Jet 可用來存取及查詢文字檔。

  • 若要建立連結伺服器,以便直接存取文字檔,而不需將檔案連結為 Access .mdb 檔內的資料表,請執行 sp_addlinkedserver,如以下範例所示。

    提供者是 Microsoft.Jet.OLEDB.4.0,而提供者字串是 'Text'。資料來源是文字檔所在目錄的完整路徑名稱。Schema.ini 檔和文字檔必須在相同的目錄中。Schema.ini 檔會描述文字檔的結構。如需有關如何建立 Schema.ini 檔的詳細資訊,請參閱 Jet Database Engine 文件集。

    --Create a linked server.
    EXEC sp_addlinkedserver txtsrv, 'Jet 4.0', 
       'Microsoft.Jet.OLEDB.4.0',
       'c:\data\distqry',
       NULL,
       'Text'
    GO
    
    --Set up login mappings.
    EXEC sp_addlinkedsrvlogin txtsrv, FALSE, NULL, Admin, NULL
    GO
    
    --List the tables in the linked server.
    EXEC sp_tables_ex txtsrv
    GO
    
    --Query one of the tables: file1#txt
    --by using a four-part name. 
    SELECT * 
    FROM txtsrv...[file1#txt]
    

請參閱

概念

以 SQL Server 測試 OLE DB 提供者
分散式查詢

其他資源

sp_addlinkedserver (Transact-SQL)

說明及資訊

取得 SQL Server 2005 協助

變更歷程記錄

版本 歷程記錄

2005 年 12 月 5 日

新增內容:
  • 新增「安全性注意事項」。