A、連結SQL Server伺服器:
1、使用 ODBC 的 Microsoft OLE DB 提供者
EXEC sp_addlinkedserver '別名','','MSDASQL',NULL,NULL,'DRIVER={SQL Server}; SERVER=遠程名; UID=使用者; PWD=密碼; '
go
exec sp_addlinkedsrvlogin @rmtsrvname='別名',@useself='false',@locallogin='sa',@rmtuser='sa',@rmtpassword='密碼'
2、使用SQL Server 的 Microsoft OLE DB 提供者
exec sp_addlinkedserver @server='別名',@provider='sqloledb',@srvproduct='',@datasrc='遠程伺服器名'
exec sp_addlinkedsrvlogin @rmtsrvname='wzb',@useself='false',@locallogin='sa',@rmtuser='sa',@rmtpassword='密碼'
3、操作資料
select * from 別名.庫名.dbo.表名
insert 庫名.dbo.表名 select * from 別名.庫名.dbo.表名
select * into 庫名.dbo.新表名 from 別名.庫名.dbo.表名
go
例1、此樣本在 SQL Server 的執行個體上建立一台名為 S1_instance1 的連結的伺服器,該伺服器使用 SQL Server 的 Microsoft OLE DB 提供者。
EXEC sp_addlinkedserver @server='S1_instance1', @srvproduct='',@provider='SQLOLEDB', datasrc='S1\instance1'
例2、建立連結的伺服器
EXEC sp_addlinkedserver 'xiaoming','','MSDASQL',NULL,NULL,'DRIVER={SQL Server}; SERVER=192.168.0.1; UID=sa; PWD=123; '
建立連結的伺服器登入映射
exec sp_addlinkedsrvlogin @rmtsrvname='xiaoming',@useself='false',@locallogin='sa',@rmtuser='sa',@rmtpassword='123'
go
--查詢資料
select * from xiaoming.schooladmin.dbo.agent
--刪除連結的伺服器登入映射和連結的伺服器:
exec sp_droplinkedsrvlogin 'xiaoming' ,'sa'
exec sp_dropserver 'xiaoming'
注意事項:
SET IDENTITY_INSERT [ database.[ owner.] ] { table } { ON | OFF } 所以不能通過串連伺服器設定此屬性
into 也存在這樣的問題select * into xiaoming.northwind.dbo.tt from xiaoming.northwind.dbo.tt
B、設定連結的伺服器以訪問Access資料庫
使用用於 Jet 的 Microsoft OLE DB 提供者此樣本建立一台名為 test的連結的伺服器。
說明 本樣本假設已經安裝 Microsoft Access 和樣本 Northwind 資料庫,且 Northwind 資料庫駐留在 C:\。
USE master
GO
-- To use named parameters:
EXEC sp_addlinkedserver @server = 'test', @provider = 'Microsoft.Jet.OLEDB.4.0', @srvproduct = 'OLE DB Provider for Jet',
@datasrc = 'C:\Northwind.mdb'
GO
-- OR to use no named parameters:
USE master
GO
EXEC sp_addlinkedserver 'test', 'OLE DB Provider for Jet','Microsoft.Jet.OLEDB.4.0', 'C:\Northwind.mdb'
GO
資料查詢
select * from test...表名