Làm th? nào đ? s? d?ng Excel v?i SQL Server liên k?t v?i các máy ch? và phân ph?i truy v?n

D?ch tiêu đ? D?ch tiêu đ?
ID c?a bài: 306397 - Xem s?n ph?m mà bài này áp d?ng vào.
Bung t?t c? | Thu g?n t?t c?

? Trang này

TÓM T?T

Microsoft SQL Server h? tr? các k?t n?i đ?n d? li?u OLE DB ngu?n trên m?t liên t?c ho?c m?t cơ s? phi th? th?c. Các k?t n?i liên t?c đư?c bi?t đ?n như m?t máy ch? đư?c liên k?t; m?t k?t n?i phi th? th?c đư?c th?c hi?n v? l?i ích c?a m?t đ?a đơn truy v?n đư?c bi?t đ?n như m?t truy v?n đư?c phân ph?i.

Microsoft Excel Workbook là có m?t lo?i OLE DB ngu?n d? li?u mà b?n có th? truy v?n thông qua SQL Server trong này cách. Bài vi?t này mô t? cú pháp là c?n thi?t đ? c?u h?nh m?t Ngu?n d? li?u Excel như m?t máy ch? đư?c liên k?t, c?ng như cú pháp là c?n thi?t s? d?ng m?t truy v?n đư?c phân ph?i truy v?n m?t ngu?n d? li?u Excel.

THÔNG TIN THÊM

Câu m?t ngu?n d? li?u Excel trên m?t máy ch? đư?c liên k?t

B?n có th? s? d?ng SQL Server Management Studio ho?c ngư?i qu?n l? doanh nghi?p, m?t h? th?ng lưu tr? th? t?c, SQL-DMO (phân ph?i qu?n l? v?t), hay SMO (SQL Server Management Objects) đ? c?u h?nh m?t d? li?u Excel ngu?n như m?t SQL Server máy ch? đư?c liên k?t. (SMO ch? có s?n cho Microsoft SQL Server 2005.) Trong t?t c? các trư?ng h?p này, b?n ph?i luôn luôn đ?t các b?n tính ch?t sau:
  • Các Tên r?ng b?n mu?n s? d?ng cho máy ch? đư?c liên k?t.
  • OLE DB Nhà cung c?p đó là đ? đư?c s? d?ng cho các k?t n?i.
  • Các ngu?n d? li?u ho?c hoàn thành đư?ng d?n và tên t?p cho b?ng tính Excel.
  • Các chu?i nhà cung c?p, mà xác đ?nh m?c tiêu như là m?t b?ng tính Excel. Theo m?c đ?nh, các nhà cung c?p máy bay ph?n l?c d? ki?n m?t cơ s? d? li?u truy c?p.
Th? t?c h? th?ng lưu tr? sp_addlinkedserver c?ng hy v?ng các @ srvproduct tài s?n, có th? là b?t k? giá tr? chu?i.

Chú ý N?u b?n đang s? d?ng SQL Server 2005, b?n ph?i ch? đ?nh m?t giá tr? mà không có s?n ph?m nào cho các Tên s?n ph?m b?t đ?ng s?n trong SQL Server Management Studio ho?c cho các @ srvproduct b?t đ?ng s?n trong các th? t?c đư?c lưu tr? cho m?t ngu?n d? li?u Excel.

B?ng cách s? d?ng SQL Server Management Studio ho?c ngư?i qu?n l? doanh nghi?p đ? c?u h?nh m?t ngu?n d? li?u Excel như m?t máy ch? đư?c liên k?t

SQL Server Management Studio (SQL Server 2005)
  1. Trong SQL Server Management Studio, m? r?ng H? ph?c v? đ?i tư?ng trong Đ?i tư?ng Explorer.
  2. Nh?p chu?t ph?i Các máy ch? đư?c liên k?t, sau đó b?m Máy ch? đư?c liên k?t m?i.
  3. Trong ngăn bên trái, ch?n các T?ng quát Trang, và sau đó làm theo các bư?c sau:
    1. Trong h?p văn b?n đ?u tiên, nh?p b?t k? tên nào cho máy ch? đư?c liên k?t.
    2. Ch?n các Ngu?n d? li?u khác tùy ch?n.
    3. Trong các Nhà cung c?p danh sách, b?m vào Microsoft ph?n l?c 4,0 OLE DB nhà cung c?p.
    4. Trong các Tên s?n ph?m h?p, lo?i Excel cho tên ngu?n d? li?u OLE DB.
    5. Trong các Ngu?n d? li?u h?p, g? đư?ng d?n và t?p tin tên đ?y đ? c?a t?p Excel.
    6. Trong các Chu?i nhà cung c?p h?p, lo?i Excel 8,0 Đ?i v?i m?t b?ng tính Excel 2002, Excel 2000 ho?c Excel 97.
    7. Nh?p vào Ok đ? t?o ra các máy ch? đư?c liên k?t m?i.
Chú ý Trong SQL Server Management Studio, b?n không th? m? r?ng tên máy ch? đư?c liên k?t m?i đ? xem danh sách các đ?i tư?ng có ch?a các h? ph?c v?.
Enterprise Manager (SQL Server 2000)
  1. Trong qu?n l? doanh nghi?p, nh?n vào đây đ? m? r?ng các Bảo mật thư m?c.
  2. Nh?p chu?t ph?i Các máy ch? đư?c liên k?t, sau đó b?m Máy ch? đư?c liên k?t m?i.
  3. Trên các T?ng quát tab, làm theo các bư?c sau:
    1. Trong h?p văn b?n đ?u tiên, nh?p b?t k? tên nào cho các liên k?t h? ph?c v?.
    2. Trong các Lo?i h? ph?c v? h?p, b?m vào Ngu?n d? li?u khác.
    3. Trong các Tên nhà cung c?p danh sách, b?m vào Microsoft ph?n l?c 4,0 OLE DB nhà cung c?p.
    4. Trong các Ngu?n d? li?u h?p, g? đ?y đ? đư?ng d?n và tên t?p c?a Excel t?p tin.
    5. Trong các Chu?i nhà cung c?p h?p, lo?i Excel 8,0 Đ?i v?i m?t b?ng tính Excel 2002, Excel 2000 ho?c Excel 97.
    6. Nh?p vào Ok đ? t?o ra các máy ch? đư?c liên k?t m?i.
  4. Nh?n vào đây đ? m? r?ng tên máy ch? đư?c liên k?t m?i đ? m? r?ng các danh sách các đ?i tư?ng mà nó ch?a.
  5. Tên máy ch? đư?c liên k?t m?i, nh?p vào Bảng. Thông báo c?a b?n b?ng tính và đư?c đ?t tên theo d?y xu?t hi?n ? bên ph?i ngăn.

B?ng cách s? d?ng m?t th? t?c đư?c lưu tr? đ? c?u h?nh m?t ngu?n d? li?u Excel như m?t máy ch? đư?c liên k?t

B?n c?ng có th? s? d?ng quy tr?nh h? th?ng lưu tr? sp_addlinkedserver đ? c?u h?nh m?t ngu?n d? li?u Excel như m?t máy ch? đư?c liên k?t:
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
				
Như đ? nói ? trên, đi?u này đư?c lưu tr? th? t?c đ?i h?i ph?i b? sung, tùy ? chu?i giá tr? cho các @ srvproduct đ?i s?, s? xu?t hi?n như là "Tên s?n ph?m" trong các doanh nghi?p C?u h?nh qu?n l? và SQL Server Management Studio. Các @ Đ?a đi?m@ Danh m?c đ?i s? không đư?c s? d?ng.

B?ng cách s? d?ng SQL-DMO c?u h?nh ngu?n d? li?u Excel như m?t máy ch? đư?c liên k?t

B?n có th? s? d?ng SQL phân ph?i qu?n l? đ?i tư?ng đ? c?u h?nh m?t Ngu?n d? li?u Excel như m?t máy ch? đư?c liên k?t l?p tr?nh t? Microsoft Visual Cơ b?n này hay cách khác ngôn ng? l?p tr?nh. B?n ph?i cung c?p cùng m?t đ?i s? b?n đó c?n thi?t trong c?u h?nh qu?n l? Enterprise và SQL Server Management Studio.
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
				

B?ng cách s? d?ng SMO đ? c?u h?nh m?t ngu?n d? li?u Excel như m?t máy ch? đư?c liên k?t

Trong SQL Server 2005, b?n có th? s? d?ng SQL Server qu?n l? các đ?i tư?ng (SMO) đ? c?u h?nh m?t ngu?n d? li?u Excel như m?t máy ch? đư?c liên k?t l?p tr?nh. Đ? th?c hi?n vi?c này, b?n có th? s? d?ng Microsoft Visual Basic.NET ho?c m?t ngôn ng? l?p tr?nh khác. B?n ph?i cung c?p các đ?i s? đư?c yêu c?u trong c?u h?nh SQL Server Management Studio. Mô h?nh đ?i tư?ng SMO kéo dài và thay th? các mô h?nh đ?i tư?ng phân ph?i qu?n l? đ?i tư?ng (SQL-DMO). B?i v? SMO là tương thích v?i SQL Server Phiên b?n 7.0, SQL Server 2000 và SQL Server 2005, b?n c?ng có th? s? d?ng SMO cho c?u h?nh c?a 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

Câu m?t ngu?n d? li?u Excel trên m?t máy ch? đư?c liên k?t

Sau khi b?n đ? c?u h?nh m?t ngu?n d? li?u Excel như m?t máy ch? đư?c liên k?t, b?n có th? d? dàng truy v?n d? li?u t? phân tích truy v?n ho?c ?ng d?ng khách hàng khác. Ví d?, đ? l?y các hàng d? li?u đư?c lưu tr? trong Sheet1 c?a b?n Excel t?p tin, các m? sau đây s? d?ng các máy ch? đư?c liên k?t b?n c?u h?nh b?i b?ng cách s? d?ng SQL-DMO:
SELECT * FROM XLTEST_DMO...Sheet1$
				
B?n c?ng có th? s? d?ng OPENQUERY đ? truy v?n các máy ch? đư?c liên k?t Excel trong m?t "passthrough" cách, như sau:
SELECT * FROM OPENQUERY(XLTEST_DMO, 'SELECT * FROM [Sheet1$]')
				
Đ?i s? đ?u tiên OPENQUERY hy v?ng s? là tên máy ch? đư?c liên k?t. Delimiters đư?c yêu c?u cho b?ng tên, như đư?c hi?n th? ? trên.

B?n có th? c?ng có đư?c danh sách c?a t?t c? các b?ng có s?n trên Excel đư?c liên k?t máy ch? b?ng cách s? d?ng truy v?n sau đây:
EXECUTE SP_TABLES_EX 'XLTEST_DMO'
				

Câu m?t ngu?n d? li?u Excel b?ng cách s? d?ng phân ph?i truy v?n

B?n có th? s? d?ng các truy v?n SQL Server đư?c phân ph?i và OPENDATASOURCE ho?c ch?c năng OPENROWSET đ? truy v?n thư?ng xuyên truy c?p ngu?n d? li?u Excel trên m?t cơ s? Lâm th?i.

Chú ý N?u b?n đang s? d?ng SQL Server 2005, đ?m b?o r?ng b?n đ? b?t các Phi th? th?c phân ph?i Queries l?a ch?n b?ng cách s? d?ng c?u h?nh khu v?c SQL máy ch? b? m?t, như trong ví d? sau:
SELECT * FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',
   'Data Source=c:\book1.xls;Extended Properties=Excel 8.0')...Sheet1$
				
Lưu ? r?ng OPENROWSET s? d?ng m?t cú pháp không ph? bi?n cho ph?n th? hai ("nhà cung c?p Đ?i s? chu?i"):
SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
   'Excel 8.0;Database=c:\book1.xls', Sheet1$)
				
Cú pháp mà m?t nhà phát tri?n ActiveX Data Objects (ADO) có th? mong đ?i đ? s? d?ng cho đ?i s? ("nhà cung c?p String") th? hai v?i OPENROWSET:
SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
   'Data Source=c:\book1.xls;Extended Properties=Excel 8.0', Sheet1$)
				
Cú pháp này làm tăng các l?i sau t? nhà cung c?p máy bay ph?n l?c:
Không th? t?m th?y có th? cài đ?t ISAM.
Chú ýL?i này c?ng x?y ra n?u b?n nh?p DataSourceThay v? Ngu?n d? li?u. Ví d?, sau đây đ?i s? không đúng:
SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'DataSource=c:\book1.xls;Extended Properties=Excel 8.0', Sheet1$) 
				

THAM KH?O

B?i v? SQL Server liên k?t v?i các máy ch? và phân ph?i truy v?n s? d?ng các OLE DB Provider, nguyên t?c chung và c?n tr?ng v? vi?c s? d?ng ADO v?i Excel áp d?ng ? đây. Đ? bi?t thêm thông tin, h?y b?m vào s? bài vi?t sau đ? xem bài vi?t trong Cơ s? Ki?n th?c Microsoft:
257819Làm th? nào đ? s? d?ng ADO v?i d? li?u Excel t? Visual Basic ho?c VBA
Đ? bi?t thêm chi ti?t v? SQL Server qu?n l? các đ?i tư?ng, ghé thăm Web site sau c?a Microsoft Developer Network (MSDN):
http://msdn2.Microsoft.com/en-US/Library/ms162169 (ide) .aspx
Đ? bi?t thêm v? cách b?t các Phi th? th?c phân ph?i Queries tùy ch?n, h?y truy c?p MSDN Web site sau:
http://msdn2.Microsoft.com/en-US/Library/ms189978 (ide) .aspx

Thu?c tính

ID c?a bài: 306397 - L?n xem xét sau cùng: 27 Tháng Tám 2011 - Xem xét l?i: 2.0
Áp d?ng
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Workgroup Edition
  • 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
T? khóa: 
kbsqlsetup kbdatabase kbhowto kbjet kbmt KB306397 KbMtvi
Máy d?ch
QUAN TRỌNG: Bài vi?t này đư?c d?ch b?ng ph?n m?m d?ch máy c?a Microsoft ch? không ph?i do con ngư?i d?ch. Microsoft cung c?p các bài vi?t do con ngư?i d?ch và c? các bài vi?t do máy d?ch đ? b?n có th? truy c?p vào t?t c? các bài vi?t trong Cơ s? Ki?n th?c c?a chúng tôi b?ng ngôn ng? c?a b?n. Tuy nhiên, bài vi?t do máy d?ch không ph?i lúc nào c?ng hoàn h?o. Lo?i bài vi?t này có th? ch?a các sai sót v? t? v?ng, cú pháp ho?c ng? pháp, gi?ng như m?t ngư?i nư?c ngoài có th? m?c sai sót khi nói ngôn ng? c?a b?n. Microsoft không ch?u trách nhi?m v? b?t k? s? thi?u chính xác, sai sót ho?c thi?t h?i nào do vi?c d?ch sai n?i dung ho?c do ho?t đ?ng s? d?ng c?a khách hàng gây ra. Microsoft c?ng thư?ng xuyên c?p nh?t ph?n m?m d?ch máy này.
Nh?p chu?t vào đây đ? xem b?n ti?ng Anh c?a bài vi?t này:306397

Cung cấp Phản hồi

 

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