分布式查询之链接服务器-SQL Server/Access
创建链接服务器。链接服务器让用户可以对 OLE DB 数据源进行分布式异类查询。在使用 sp_addlinkedserver 创建链接服务器后,可对该服务器运行分布式查询。如果链接服务器定义为 SQL Server 实例,则可执行远程存储过程。
![](http://i.msdn.microsoft.com/Global/Images/clear.gif)
sp_addlinkedserver [ @server= ] 'server' [ , [ @srvproduct= ] 'product_name' ]
[ , [ @provider= ] 'provider_name' ]
[ , [ @datasrc= ] 'data_source' ]
[ , [ @location= ] 'location' ]
[ , [ @provstr= ] 'provider_string' ]
[ , [ @catalog= ] 'catalog' ]
![](http://i.msdn.microsoft.com/Global/Images/clear.gif)
要求具有 ALTER ANY LINKED SERVER 权限。
A. 使用 Microsoft SQL Server Native Client OLE DB 访问接口
下面的示例将创建一个名为 [192.168.28.253,1433]
的链接服务器。产品名称为 SQL Server
,未使用访问接口名称。
use master
exec sp_addlinkedserver
'192.168.28.253,1433', --使用默认实例,名称与服务器的网络名称一致
N'SQL Server'
--select * from [192.168.28.253,1433].gxasti.gxasti.subwebitem
下例使用 SQL Server Native Client OLE DB 访问接口在 SQL Server 实例中创建链接服务器 myTest
。
EXEC sp_addlinkedserver
@server='myTest',
@srvproduct='',
@provider='SQLNCLI',
@datasrc='ONTALL-1\SQLEXPRESS'
--select * from mytest.lzgjj.lzgjj.subwebitem
B. 使用 Microsoft OLE DB Provider for Microsoft Access
Microsoft.Jet.OLEDB.4.0 访问接口连接到使用 2002-2003 格式的 Microsoft Access 数据库。
EXEC sp_addlinkedserver
@server = 'mytest2',
@provider = 'Microsoft.Jet.OLEDB.4.0',
@srvproduct = 'OLE DB Provider for Jet',
@datasrc = 'D:\sd\test.mdb'
GO
EXEC sp_addlinkedsrvlogin 'mytest2','false',null,'admin',''
--select * from mytest2...subproj