วิธีการใช้ Excel กับ SQL Server เซิร์ฟเวอร์ที่เชื่อมโยง และกระจายแบบสอบถาม

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 306397 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
ขยายทั้งหมด | ยุบทั้งหมด

เนื้อหาบนหน้านี้

สรุป

Microsoft SQL Server สนับสนุนการเชื่อมต่อกับแหล่งข้อมูล OLE DB อื่น ๆ ในแบบถาวรหรือพื้นฐานในโหมด ad hoc เรียกการเชื่อมต่อปัจจุบันเป็นเซิร์ฟเวอร์ที่มีการเชื่อมโยง เชื่อมต่อชั่วคราวที่สร้างสำหรับ sake ของแบบสอบถามหนึ่ง เรียกว่าแบบสอบถามที่วางจำหน่าย

สมุดงาน Microsoft Excel เป็นชนิดหนึ่งชนิดของแหล่งข้อมูล OLE DB ที่คุณสามารถสอบถามถึง SQL Server ในลักษณะนี้ บทความนี้อธิบายไวยากรณ์ที่ไม่จำเป็นในการกำหนดค่าแหล่งข้อมูลของ Excel ที่เป็นเซิร์ฟเวอร์ที่มีการเชื่อมโยง ตลอดจนไวยากรณ์ที่ไม่จำเป็นต้องใช้การสอบถามแบบกระจายแบบสอบถามนั้น เป็นแหล่งข้อมูลของ Excel

ข้อมูลเพิ่มเติม

แหล่งข้อมูลมี Excel บนเซิร์ฟเวอร์ที่เชื่อมโยงกับการสอบถาม

คุณสามารถใช้ Studio จัดการเซิร์ฟเวอร์ SQL หรือตัวจัดการองค์กร ระบบการจัดเก็บไว้ตามขั้นตอน SQL-DMO (แจกจ่ายวัตถุ Management), หรือ SMO (SQL Server จัดการวัตถุ) เพื่อกำหนดค่าแหล่งข้อมูลมี Excel เป็นเซิร์ฟเวอร์ที่ถูกเชื่อมโยงของ SQL Server ได้ (SMO มีไว้เฉพาะสำหรับ Microsoft SQL Server 2005) ในกรณีเหล่านี้ คุณเสมอต้องกำหนดคุณสมบัติสี่ต่อไปนี้:
  • กระบวนการชื่อ:ที่คุณต้องการใช้สำหรับเซิร์ฟเวอร์ที่ถูกเชื่อมโยง
  • ฐานข้อมูลของ OLEผู้ให้บริการซึ่งจะถูกใช้สำหรับการเชื่อมต่อ
  • กระบวนการแหล่งข้อมูลหรือเส้นทางและชื่อแฟ้มสำหรับสมุดงาน Excel ที่ทำให้เสร็จสมบูรณ์
  • กระบวนการสายอักขระของผู้ให้บริการซึ่งระบุเป้าหมายเป็นสมุดงาน Excel โดยค่าเริ่มต้น ผู้ให้บริการ Jet expects ฐานข้อมูลการเข้าถึง
ขั้นตอนของระบบที่เก็บไว้sp_addlinkedserverนอกจากนี้ยัง expects@ srvproductคุณสมบัติ ซึ่งสามารถเป็นค่าสายอักขระใด ๆ

หมายเหตุ:ถ้าคุณใช้ SQL Server 2005 คุณต้องระบุค่าที่ไม่ว่างเปล่าสำหรับการชื่อผลิตภัณฑ์คุณสมบัติ ใน Studio จัดการเซิร์ฟเวอร์ SQL หรือสำหรับการ@ srvproductคุณสมบัติในกระบวนงานที่เก็บไว้สำหรับแหล่งข้อมูลมี Excel

การใช้ Studio จัดการเซิร์ฟเวอร์ SQL หรือผู้จัดการขององค์กรในการกำหนดค่าแหล่งข้อมูลของ Excel ที่เป็นเซิร์ฟเวอร์ที่มีการเชื่อมโยง

Studio จัดการเซิร์ฟเวอร์ sql (SQL Server 2005)
  1. ใน SQL Server Studio จัดการ ขยายวัตถุเซิร์ฟเวอร์ในวัตถุ Explorer.
  2. คลิกขวาเซิร์ฟเวอร์ที่ถูกเชื่อมโยงแล้ว คลิกเซิร์ฟเวอร์ที่ถูกเชื่อมโยงใหม่.
  3. ในบานหน้าต่างด้านซ้าย เลือกนั้นทั่วไปหน้า และทำ ตามขั้นตอนเหล่านี้:
    1. ในกล่องข้อความแรก พิมพ์ชื่อใด ๆ สำหรับเซิร์ฟเวอร์ที่ถูกเชื่อมโยง
    2. เลือกการแหล่งข้อมูลอื่น ๆตัวเลือก
    3. ในการผู้ให้บริการรายการ คลิกผู้ให้บริการฐานข้อมูลของ Microsoft Jet 4.0 OLE.
    4. ในการชื่อผลิตภัณฑ์กล่อง ชนิดExcelสำหรับชื่อของแหล่งข้อมูล OLE DB
    5. ในการแหล่งข้อมูลกล่อง พิมพ์เส้นทางและชื่อเต็มของแฟ้ม Excel
    6. ในการสายอักขระของผู้ให้บริการกล่อง ชนิดExcel 8.0สำหรับสมุดใน Excel 2002, Excel 2000 หรือ Excel 97 งาน
    7. คลิกตกลงเมื่อต้องการสร้างการเชื่อมโยงกับเซิร์ฟเวอร์ใหม่
หมายเหตุ:ใน SQL Server Studio จัดการ คุณไม่สามารถขยายชื่อเซิร์ฟเวอร์ที่ถูกเชื่อมโยงใหม่เพื่อดูรายการของวัตถุที่ประกอบด้วยเซิร์ฟเวอร์
ตัวจัดการองค์กร (SQL Server 2000)
  1. ในองค์กร Manager คลิกการขยายการรักษาความปลอดภัยโฟลเดอร์
  2. คลิกขวาเซิร์ฟเวอร์ที่ถูกเชื่อมโยงแล้ว คลิกเซิร์ฟเวอร์ที่ถูกเชื่อมโยงใหม่.
  3. ในการทั่วไปแท็บ ทำตามขั้นตอนเหล่านี้:
    1. ในกล่องข้อความแรก พิมพ์ชื่อใด ๆ สำหรับเซิร์ฟเวอร์ที่ถูกเชื่อมโยง
    2. ในการชนิดของเซิร์ฟเวอร์กล่อง คลิกแหล่งข้อมูลอื่น ๆ.
    3. ในการชื่อของผู้ให้บริการรายการ คลิกผู้ให้บริการฐานข้อมูลของ Microsoft Jet 4.0 OLE.
    4. ในการแหล่งข้อมูลกล่อง พิมพ์เส้นทางและชื่อเต็มของ Excel แฟ้ม
    5. ในการสายอักขระของผู้ให้บริการกล่อง ชนิดExcel 8.0สำหรับสมุดใน Excel 2002, Excel 2000 หรือ Excel 97 งาน
    6. คลิกตกลงเมื่อต้องการสร้างการเชื่อมโยงกับเซิร์ฟเวอร์ใหม่
  4. คลิกที่ชื่อเซิร์ฟเวอร์ที่ถูกเชื่อมโยงใหม่เพื่อขยายรายชื่อของวัตถุที่ประกอบด้วยการขยาย
  5. ภายใต้ชื่อเซิร์ฟเวอร์ที่ถูกเชื่อมโยงใหม่ คลิกตาราง. ขอให้สังเกตว่า แผ่นงานและช่วงที่มีชื่อของคุณปรากฏในบานหน้าต่างด้านขวา

ใช้กระบวนงานที่เก็บไว้ในการกำหนดค่าแหล่งข้อมูลของ Excel ที่เป็นเซิร์ฟเวอร์ที่มีการเชื่อมโยง

คุณยังสามารถใช้ขั้นตอนของระบบที่เก็บไว้sp_addlinkedserverการกำหนดค่าแหล่งข้อมูลของ Excel ที่เป็นเซิร์ฟเวอร์ที่มีการเชื่อมโยง:
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
				
ในขณะที่บันทึกไว้ข้างต้น กระบวนงานที่เก็บไว้นี้จำเป็นต้องมีค่าสายอักขระที่เพิ่มเติม เองสำหรับการ@ srvproductอาร์กิวเมนต์ ซึ่งปรากฏเป็น "ผลิตภัณฑ์ชื่อ" ในการกำหนดค่าตัวจัดการองค์กรและ Studio จัดการเซิร์ฟเวอร์ SQL กระบวนการ@ตำแหน่งที่ตั้งและ@แค็ตตาล็อกอาร์กิวเมนต์ไม่ถูกใช้

การใช้ SQL DMO เพื่อกำหนดค่าแหล่งข้อมูลของ Excel ที่เป็นเซิร์ฟเวอร์ที่มีการเชื่อมโยง

คุณสามารถใช้วัตถุการจัดการการกระจายแบบ SQL ในการกำหนดค่าแหล่งข้อมูลของ Excel ที่เป็นเซิร์ฟเวอร์ที่ถูกเชื่อมโยงโดยทางโปรแกรมจาก Microsoft Visual Basic หรือภาษาการเขียนโปรแกรมอื่น คุณต้องใส่อาร์กิวเมนต์สี่เดียวกันที่จำเป็นในการกำหนดค่าตัวจัดการองค์กรและ Studio จัดการเซิร์ฟเวอร์ SQL
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
				

การใช้ SMO การกำหนดค่าแหล่งข้อมูลของ Excel ที่เป็นเซิร์ฟเวอร์ที่มีการเชื่อมโยง

In SQL Server 2005, you can use SQL Server Management Objects (SMO) to configure an Excel data source as a linked server programmatically. To do this, you can use Microsoft Visual Basic .NET or another programming language. You must supply the arguments that are required in the SQL Server Management Studio configuration. The SMO object model extends and supersedes the Distributed Management Objects (SQL-DMO) object model. Because SMO is compatible with SQL Server version 7.0, SQL Server 2000, and SQL Server 2005, you can also use SMO for configuration of SQL Server 2000.
Imports Microsoft.SqlServer.Management.Smo
Imports Microsoft.SqlServer.Management.Common

Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim s As Server
        Dim conn As ServerConnection
        Dim ls As LinkedServer

        conn = New ServerConnection("ServerName\InstanceName", "YourUesrName", "YourPassword")
        s = New Server(conn)
        Try
            ls = New LinkedServer(s, "XLTEST_DMO")
            With ls
                .ProviderName = "Microsoft.Jet.OLEDB.4.0"
                .ProductName = "Excel"
                .DataSource = "c:\book1.xls"
                .ProviderString = "Excel 8.0"
            End With
            ls.Create()
            MessageBox.Show("New linked Server has been created.")
        Catch ex As SmoException
            MessageBox.Show(ex.Message)
        Finally
            ls = Nothing
            If s.ConnectionContext.IsOpen = True Then
                s.ConnectionContext.Disconnect()
            End If
        End Try

    End Sub
End Class

Querying an Excel data source on a linked server

After you configure an Excel data source as a linked server, you can easily query its data from Query Analyzer or another client application. For example, to retrieve the rows of data that are stored in Sheet1 of your Excel file, the following code uses the linked server that you configured by using SQL-DMO:
SELECT * FROM XLTEST_DMO...Sheet1$
				
You can also use OPENQUERY to query the Excel linked server in a "passthrough" manner, as follows:
SELECT * FROM OPENQUERY(XLTEST_DMO, 'SELECT * FROM [Sheet1$]')
				
The first argument that OPENQUERY expects is the linked server name. Delimiters are required for worksheet names, as shown above.

You can also obtain a list of all the tables that are available on the Excel linked server by using the following query:
EXECUTE SP_TABLES_EX 'XLTEST_DMO'
				

Querying an Excel data source by using distributed queries

You can use SQL Server distributed queries and the OPENDATASOURCE or OPENROWSET function to query infrequently accessed Excel data sources on an ad hoc basis.

หมายเหตุ:If you are using SQL Server 2005, make sure that you have enabled theAd Hoc Distributed Queriesoption by using SQL Server Surface Area Configuration, as in the following example:
SELECT * FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',
   'Data Source=c:\book1.xls;Extended Properties=Excel 8.0')...Sheet1$
				
Note that OPENROWSET uses an uncommon syntax for the second ("Provider String") argument:
SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
   'Excel 8.0;Database=c:\book1.xls', Sheet1$)
				
The syntax that an ActiveX Data Objects (ADO) developer may expect to use for the second ("Provider String") argument with OPENROWSET:
SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
   'Data Source=c:\book1.xls;Extended Properties=Excel 8.0', Sheet1$)
				
This syntax raises the following error from the Jet Provider:
Could not find installable ISAM.
หมายเหตุ:This error also occurs if you enterแหล่งข้อมูลแทนแหล่งข้อมูล. For example, the following argument is incorrect:
SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'DataSource=c:\book1.xls;Extended Properties=Excel 8.0', Sheet1$) 
				

ข้อมูลอ้างอิง

Because SQL Server linked servers and distributed queries use the OLE DB Provider, the general guidelines and cautions about using ADO with Excel apply here.สำหรับข้อมูลเพิ่มเติม ให้คลิกหมายเลขบทความต่อไปนี้ เพื่อดูบทความในฐานความรู้ของ Microsoft::
257819วิธีการใช้ ADO กับข้อมูล Excel จาก Visual Basic หรือ VBA
For more information about SQL Server Management Objects, visit the following Microsoft Developer Network (MSDN) Web site:
http://msdn2.microsoft.com/en-us/library/ms162169(ide).aspx
For more information about how to enable theAd Hoc Distributed Queriesoption, visit the following MSDN Web site:
http://msdn2.microsoft.com/en-us/library/ms189978(ide).aspx

คุณสมบัติ

หมายเลขบทความ (Article ID): 306397 - รีวิวครั้งสุดท้าย: 10 มกราคม 2554 - Revision: 4.0
ใช้กับ
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL 2005 Server Enterprise
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL 2005 Server Workgroup
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2000 Enterprise Edition
  • Microsoft SQL Server 2000 Developer Edition
  • Microsoft SQL Server 2000 Personal Edition
  • Microsoft SQL Server 2000 Workgroup Edition
  • Microsoft SQL Server 7.0 Standard Edition
Keywords: 
kbdatabase kbhowto kbjet kbmt KB306397 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:306397

ให้ข้อเสนอแนะ

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com