OLE DB Provider for Jet
更新: 2005 年 12 月 5 日
Microsoft OLE DB Provider for Jet 提供 Microsoft Access 資料庫個 OLE DB 介面,讓 SQL Server 2005 分散式查詢可查詢 Access 資料庫及 Excel 試算表。
若要建立連結伺服器來存取 Access 資料庫
執行 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'
若要存取不安全的 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
登錄項目設定完成後,使用
sp_addlinkedsrvlogin
來建立本機登入到 Access 登入的登入對應:sp_addlinkedsrvlogin 'Nwind', false, 'Joe', 'AccessUser', '034fhd99dl'
安全性注意事項: |
---|
這個範例不使用 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)
說明及資訊
變更歷程記錄
版本 | 歷程記錄 |
---|---|
2005 年 12 月 5 日 |
|