A. 使用 Microsoft SQL Server Native Client OLE DB Provider
下列範例會建立一個名叫 SEATTLESales 的連結伺服器。產品名稱是 SQL Server,另外,不使用任何提供者名稱。
USE master;
GO
EXEC sp_addlinkedserver
'SEATTLESales',
N'SQL Server'
GO
下列範例會利用 SQL Server Native Client OLE DB 提供者,在 SQL Server 執行個體上建立連結伺服器 S1_instance1。
EXEC sp_addlinkedserver
@server='S1_instance1',
@srvproduct='',
@provider='SQLNCLI',
@datasrc='S1\instance1'
B. 使用 Microsoft OLE DB Provider for Microsoft Access
Microsoft.Jet.OLEDB.4.0 提供者會連接到使用 2002-2003 格式的 Microsoft Access 資料庫。下列範例會建立一個名為 SEATTLE Mktg 的連結伺服器。
附註: |
|---|
|
這個範例假設 Microsoft Access 和範例 Northwind 資料庫皆已安裝,而且 Northwind 資料庫位於 C:\Msoffice\Access\Samples。
|
EXEC sp_addlinkedserver
@server = 'SEATTLE Mktg',
@provider = 'Microsoft.Jet.OLEDB.4.0',
@srvproduct = 'OLE DB Provider for Jet',
@datasrc = 'C:\MSOffice\Access\Samples\Northwind.mdb'
GO
Microsoft.ACE.OLEDB.12.0 提供者會連接到使用 2007 格式的 Microsoft Access 資料庫。下列範例會建立一個名為 SEATTLE Mktg 的連結伺服器。
附註: |
|---|
|
這個範例假設 Microsoft Access 和範例 Northwind 資料庫皆已安裝,而且 Northwind 資料庫位於 C:\Msoffice\Access\Samples。
|
EXEC sp_addlinkedserver
@server = 'SEATTLE Mktg',
@provider = Microsoft.ACE.OLEDB.12.0',
@srvproduct = 'OLE DB Provider for ACE',
@datasrc = 'C:\MSOffice\Access\Samples\Northwind.accdb'
GO
使用 Microsoft OLE DB Provider for Oracle
下列範例會建立一個名為 LONDON Mktg 的連結伺服器,該連結伺服器是使用 Microsoft OLE DB Provider for Oracle,並且假設 Oracle 資料庫的 SQL*Net 別名為 MyServer。
EXEC sp_addlinkedserver
@server = 'LONDON Mktg',
@srvproduct = 'Oracle',
@provider = 'MSDAORA',
@datasrc = 'MyServer'
GO
D. 搭配 data_source 參數來使用 Microsoft OLE DB Provider for ODBC
下列範例會建立一個名為 SEATTLE Payroll 的連結伺服器,該連結伺服器是使用 Microsoft OLE DB Provider for ODBC (MSDASQL) 以及 data_source 參數。
附註: |
|---|
|
您必須先在伺服器中,將指定的 ODBC 資料來源名稱定義為系統 DSN,才可以使用該連結伺服器。
|
EXEC sp_addlinkedserver
@server = 'SEATTLE Payroll',
@srvproduct = '',
@provider = 'MSDASQL',
@datasrc = 'LocalServer'
GO
E. 使用適用於 Excel 試算表的 Microsoft OLE DB Provider
若要利用 Microsoft OLE DB Provider for Jet 來建立連結伺服器定義,以存取 1997 - 2003 格式的 Excel 試算表,必須先指定您要選取的 Excel 工作表資料行和資料列,在 Excel 中建立一個具名範圍。然後才能在分散式查詢中,將該範圍的名稱參考為資料表名稱。
EXEC sp_addlinkedserver 'ExcelSource',
'Jet 4.0',
'Microsoft.Jet.OLEDB.4.0',
'c:\MyData\DistExcl.xls',
NULL,
'Excel 5.0'
GO
若要存取 Excel 試算表中的資料,請建立資料格範圍與某個名稱的關聯性。您可以利用先前設定的連結伺服器,以下列查詢存取作為資料表使用的指定具名範圍 SalesData。
SELECT *
FROM ExcelSource...SalesData
GO
如果 SQL Server 是以一個有權存取遠端共用區的網域帳戶來執行,即可改用 UNC 路徑來取代對應的磁碟機。
EXEC sp_addlinkedserver 'ExcelShare',
'Jet 4.0',
'Microsoft.Jet.OLEDB.4.0',
'\\MyServer\MyShare\Spreadsheets\DistExcl.xls',
NULL,
'Excel 5.0'
若要連接到 Excel 2007 格式的 Excel 試算表,請使用 ACE 提供者。
EXEC sp_addlinkedserver @server = N'ExcelDataSource',
@srvproduct=N'ExcelData', @provider=N'Microsoft.ACE.OLEDB.12.0',
@datasrc=N'C:\DataFolder\People.xlsx',
@provstr='EXCEL 12.0' ;
F. 使用 Microsoft OLE DB Provider for Jet 來存取文字檔
下列範例會建立一個連結伺服器,直接存取文字檔,而不將這些檔案當做 Access .mdb 檔中的資料表加以連結。提供者是 Microsoft.Jet.OLEDB.4.0,而提供者字串是 Text。
資料來源是包含這些文字檔之目錄的完整路徑。描述文字檔結構的 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, Admin, NULL
GO
--List the tables in the linked server.
EXEC sp_tables_ex txtsrv
GO
--Query one of the tables: file1#txt
--using a four-part name.
SELECT *
FROM txtsrv...[file1#txt]
G. 使用 Microsoft OLE DB Provider for DB2
下列範例會建立一個名叫 DB2 的連結伺服器,該連結伺服器是使用 Microsoft OLE DB Provider for DB2。
EXEC sp_addlinkedserver
@server='DB2',
@srvproduct='Microsoft OLE DB Provider for DB2',
@catalog='DB2',
@provider='DB2OLEDB',
@provstr='Initial Catalog=PUBS;
Data Source=DB2;
HostCCSID=1252;
Network Address=XYZ;
Network Port=50000;
Package Collection=admin;
Default Schema=admin;'