如何通過(guò)SQLServer鏈接服務(wù)器和分布式查詢使用Excel

概要

SQL Server 支持到其他 OLE DB 數(shù)據(jù)源的永久性連接或臨時(shí)連接。永久性連接叫做鏈接服務(wù)器;為單個(gè)查詢建立的臨時(shí)連接叫做分布式查詢。

創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站建設(shè)、成都網(wǎng)站建設(shè)、覃塘網(wǎng)絡(luò)推廣、微信小程序開(kāi)發(fā)、覃塘網(wǎng)絡(luò)營(yíng)銷、覃塘企業(yè)策劃、覃塘品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們大的嘉獎(jiǎng);創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供覃塘建站搭建服務(wù),24小時(shí)服務(wù)熱線:028-86922220,官方網(wǎng)址:muchs.cn

Microsoft Excel 工作簿是一種可通過(guò) SQL Server 以這種方式查詢的 OLE DB 數(shù)據(jù)源。本文介紹了將 Excel 數(shù)據(jù)源配置為鏈接服務(wù)器所需的語(yǔ)法,以及使用分布式查詢來(lái)查詢 Excel 數(shù)據(jù)源所需的語(yǔ)法。

回到頂端
更多信息 作為鏈接服務(wù)器查詢 Excel
您可以使用企業(yè)管理器、系統(tǒng)存儲(chǔ)過(guò)程或 SQL-DMO(分布式管理對(duì)象)將 Excel 數(shù)據(jù)源配置為 SQL Server 鏈接服務(wù)器。在所有的這些情況中,您總需要設(shè)置以下四個(gè)屬性:
• 鏈接服務(wù)器要使用的名稱。 • 連接要使用的 OLE DB 提供程序。 • Excel 工作簿的數(shù)據(jù)源或完整路徑和文件名。 • 將目標(biāo)標(biāo)識(shí)為 Excel 工作簿的提供程序字符串。默認(rèn)情況下,Jet 提供程序需要 Access 數(shù)據(jù)庫(kù)。
系統(tǒng)存儲(chǔ)過(guò)程 sp_addlinkedserver也需要 @srvproduct屬性,該屬性可以是任何字符串值。
使用企業(yè)管理器配置 Excel 鏈接服務(wù)器
1. 在企業(yè)管理器中,單擊以展開(kāi)安全文件夾。 2. 右鍵單擊鏈接服務(wù)器,然后單擊新建鏈接服務(wù)器。 3. 在常規(guī)選項(xiàng)卡上,按照下列步驟操作: a. 在第一個(gè)文本框中,為該鏈接服務(wù)器鍵入任意名稱。 b. 在服務(wù)器類型文本框中,單擊其他數(shù)據(jù)源。 c. 在提供程序名稱下拉列表框中,單擊 Microsoft Jet 4.0 OLE DB 提供程序。 d. 在數(shù)據(jù)源文本框中,鍵入 Excel 文件的完整路徑和文件名。 e. 在提供程序字符串文本框中,鍵入 Excel 8.0 代表 Excel 97、2000 或 2002 工作簿。 f. 單擊確定以創(chuàng)建新的鏈接服務(wù)器。 4. 單擊以展開(kāi)此新鏈接服務(wù)器的名稱,從而展開(kāi)它所包含的對(duì)象列表。 5. 在新建鏈接服務(wù)器名稱下,單擊。注意,工作表和命名區(qū)域?qū)⒊霈F(xiàn)在右窗格中。
使用存儲(chǔ)過(guò)程配置 Excel 鏈接服務(wù)器
您還可以使用系統(tǒng)存儲(chǔ)過(guò)程 sp_addlinkedserver將 Excel 數(shù)據(jù)源配置為鏈接服務(wù)器: 如上所述,此存儲(chǔ)過(guò)程另需一個(gè)任意字符串值作為 @srvproduct參數(shù)的值,此參數(shù)在企業(yè)管理器配置中顯示為“產(chǎn)品名稱”。不使用 @location@catalog參數(shù)。

DECLARE @RC int DECLARE @server nvarchar(128) DECLARE @srvproduct nvarchar(128) DECLARE @provider nvarchar(128) DECLARE @datasrc nvarchar(4000) DECLARE @location nvarchar(4000) DECLARE @provstr nvarchar(4000) DECLARE @catalog nvarchar(128) -- Set parameter values SET @server = \'XLTEST_SP\' SET @srvproduct = \'Excel\' SET @provider = \'Microsoft.Jet.OLEDB.4.0\' SET @datasrc = \'c:/book1.xls\' SET @provstr = \'Excel 8.0\' EXEC @RC = [master].[dbo].[sp_addlinkedserver] @server, @srvproduct, @provider, @datasrc, @location, @provstr, @catalog

使用 SQL-DMO 配置 Excel 鏈接服務(wù)器
您可以使用 SQL 分布式管理對(duì)象從 Microsoft Visual Basic 或其他編程語(yǔ)言中將一個(gè) Excel 數(shù)據(jù)源以編程方式配置為鏈接服務(wù)器。您必須也提供企業(yè)管理器配置中要求的那四個(gè)參數(shù)。

Private Sub Command1_Click() Dim s As SQLDMO.SQLServer Dim ls As SQLDMO.LinkedServer Set s = New SQLDMO.SQLServer s.Connect "(local)", "sa", "password" Set ls = New SQLDMO.LinkedServer With ls .Name = "XLTEST_DMO" .ProviderName = "Microsoft.Jet.OLEDB.4.0" .DataSource = "c:/book1.xls" .ProviderString = "Excel 8.0" End With s.LinkedServers.Add ls s.Close End Sub 查詢 Excel 鏈接服務(wù)器 將 Excel 數(shù)據(jù)源配置為鏈接服務(wù)器之后,您可以方便地通過(guò)“查詢分析器”或其他客戶端應(yīng)用程序查詢其數(shù)據(jù)。例如,為了檢索存儲(chǔ)在 Excel 文件 Sheet1 中的數(shù)據(jù)行,以下代碼使用了您使用 SQL-DMO 配置的鏈接服務(wù)器:

SELECT * FROM XLTEST_DMO...Sheet1$ 您還可以使用 OPENQUERY 以“passthrough”(傳遞)方式查詢 Excel 鏈接服務(wù)器,如下所示:

SELECT * FROM OPENQUERY(XLTEST_DMO, \'SELECT * FROM [Sheet1$]\') OPENQUERY需要的第一個(gè)參數(shù)是鏈接服務(wù)器名稱。工作表名稱之間需要用分隔符分開(kāi),如上所示。

您還可以使用以下查詢獲得 Excel 鏈接服務(wù)器上所有可用表的列表:

EXECUTE SP_TABLES_EX \'XLTEST_DMO\'

回到頂端
使用分布式查詢來(lái)查詢 Excel 您可以使用 SQL Server 分布式查詢和 OPENDATASOURCE 或 OPENROWSET 函數(shù)臨時(shí)查詢很少訪問(wèn)的 Excel 數(shù)據(jù)源,如下所示:

SELECT * FROM OPENDATASOURCE(\'Microsoft.Jet.OLEDB.4.0\', \'Data Source=c:/book1.xls;Extended Properties=Excel 8.0\')...Sheet1$ 注意,OPENROWSET 對(duì)第二個(gè)(“提供程序字符串”)參數(shù)使用一種非常規(guī)語(yǔ)法:

SELECT * FROM OPENROWSET(\'Microsoft.Jet.OLEDB.4.0\', \'Excel 8.0;Database=c:/book1.xls\', Sheet1$) ActiveX 數(shù)據(jù)對(duì)象 (ADO) 開(kāi)發(fā)人員按照常規(guī)應(yīng)對(duì) OPENROWSET 的第二個(gè)(“提供程序字符串”)參數(shù)使用的語(yǔ)法會(huì)

SELECT * FROM OPENROWSET(\'Microsoft.Jet.OLEDB.4.0\', \'Data Source=c:/book1.xls;Extended Properties=Excel 8.0\', Sheet1$) 造成 Jet 提供程序出現(xiàn)以下錯(cuò)誤:

Could not find installable ISAM.

文章名稱:如何通過(guò)SQLServer鏈接服務(wù)器和分布式查詢使用Excel
網(wǎng)站URL:http://muchs.cn/article24/chesce.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、企業(yè)網(wǎng)站制作、定制開(kāi)發(fā)建站公司、網(wǎng)站建設(shè)、網(wǎng)站改版

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)