https://msdn.microsoft.com/zh-tw/library/ms190479(v=sql.120).aspx
https://msdn.microsoft.com/zh-tw/library/ff772782(v=sql.120).aspx
EXEC sp_addlinkedserver
@server = N'Access',
@provider = N'Microsoft.Jet.OLEDB.4.0',
@srvproduct = N'OLE DB Provider for Jet',
@datasrc = N'D:\F2\App_Data\ya.mdb';
GO
Create linked server to MS Access database
Now in the provider name select Microsoft.Jet.OLEDB.4.0 Provider (OLEDB is faster then ODBC AFAIK)
Specify a linked server name you wish
Datasource will the Path to mdb file Ex: "c:\test.mdb"
Product Name will be "Access"
Else you can try below T-SQL too
exec sp_addlinkedserver @server='Access', @srvproduct='Access', @provider='Microsoft.Jet.OLEDB.4.0', @datasrc='c:\test.mdb'
exec sp_addlinkedsrvlogin @rmtsrvname='Access', @useself='false', @rmtuser='Admin', @rmtpassword=''
Regarding login use Username Admin and NULL as password when you trying in GUI.
Now to get the remote table run below T-SQl
sp_tableex N'Access'
For more explanation on T-SQL and Linked Servers, Refer to BOL...
sp_addlinkedserver
建立連結伺服器。連結伺服器可讓您對 OLE DB 資料來源存取分散式異質性查詢。
sp_addlinkedserver
@server = 'server' , -- 要建立的連結伺服器名稱。 @srvproduct = 'product_name' , -- 加入的 OLE DB 資料來源產品名稱。 -- nvarchar(128),預設值是 NULL。 @provider = 'provider_name' , -- 唯一程式化識別碼 (PROGID)。 -- nvarchar(128),預設值是 NULL。 @datasrc = 'data_source' , -- 資料來源名稱。 -- nvarchar(4000),DBPROP_INIT_DATASOURCE 屬性。 @location = 'location' , -- 資料庫位置。 -- nvarchar(4000),預設值是 NULL,DBPROP_INIT_LOCATION 屬性。 @provstr = 'provider_string' , -- 連接字串,用來識別唯一資料來源。 -- nvarchar(4000),預設值是 NULL,DBPROP_INIT_PROVIDERSTRING 屬性。 @catalog = 'catalog' -- 所用的目錄。 -- 是 sysname,預設值是 NULL,DBPROP_INIT_CATALOG 屬性。
傳回碼值:0 (成功) 或 1 (失敗)
權限:需要伺服器的 ALTER ANY LINKED SERVER 權限。
* 資料來源產品名稱如果是 SQL Server,則不必指定 provider_name、data_source、location、provider_string 和 catalog。
* 連結伺服器資料紀錄於 master.dbo.sysservers 中。
|
sp_dropserver
從 SQL Server 本機執行個體上的已知遠端和連結伺服器清單中移除伺服器。
sp_dropserver @server = 'server' , -- 要移除的伺服器 @droplogins = {'droplogins' | NULL} -- 如果指定了 droplogins,也必須移除 server 的相關遠端和連結伺服器登入 -- char(10),預設值是 NULL。
傳回碼值:0 (成功) 或 1 (失敗)
權限:需要伺服器的 ALTER ANY LINKED SERVER 權限。
* 若要在移除伺服器時移除伺服器的所有遠端和連結伺服器登入,請使用 droplogins 引數。
|
[範例] 連接到 SQL Server,建立一個名叫
SEATTLESales
的連結伺服器。 EXEC sp_addlinkedserver 'SEATTLESales', N'SQL Server' |
[範例] 連接到 Microsoft Access 2002-2003
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' |
[範例] 連接到 Microsoft Access 2007
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' |
[範例] 連接到 Microsoft Excel 1997 - 2003
EXEC sp_addlinkedserver
'ExcelShare', 'Jet 4.0', 'Microsoft.Jet.OLEDB.4.0', '\\MyServer\MyShare\Spreadsheets\DistExcl.xls', NULL, 'Excel 5.0' |
[範例] 連接到 Microsoft Excel 2007
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' ; |
[範例] 連接到 Oracle,建立一個名為
LONDON Mktg
的連結伺服器 EXEC sp_addlinkedserver @server = 'LONDON Mktg', @srvproduct = 'Oracle', @provider = 'MSDAORA', @datasrc = 'MyServer' |
[範例] 連接到 ODBC,建立一個名為
SEATTLE Payroll
的連結伺服器 EXEC sp_addlinkedserver @server = 'SEATTLE Payroll', @srvproduct = '', @provider = 'MSDASQL', @datasrc = 'LocalServer' |
[範例] 連接到 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;' |
[範例] 連接到 文字檔
--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] |
[範例] 移除遠端伺服器
ACCOUNTS
和所有相關聯的遠端登入。 EXEC sp_dropserver 'ACCOUNTS', 'droplogins'; |
沒有留言:
張貼留言