使用sql-server进行分布式查询(链接服务器)

王朝mssql·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

可以使用sql-server企业管理器进行建立,注意其中的rpc及rpc out两项,也可以使用sql语句来完成定义,主要涉及到三个存储过程

sp_addlinkedserver,sp_serveroption和sp_addlinkedsrvlogin,以下是三个存储过程的语法:

sp_addlinkedserver

创建一个链接的服务器,使其允许对分布式的、针对 OLE DB 数据源的异类查询进行访问。在使用 sp_addlinkedserver 创建链接的服务器之后,此服务器就可以执行分布式查询。如果链接服务器定义为 Microsoft® SQL Server™,则可执行远程存储过程。

语法

sp_addlinkedserver [ @server = ] 'server'

[ , [ @srvproduct = ] 'product_name' ]

[ , [ @provider = ] 'provider_name' ]

[ , [ @datasrc = ] 'data_source' ]

[ , [ @location = ] 'location' ]

[ , [ @provstr = ] 'provider_string' ]

[ , [ @catalog = ] 'catalog' ]

例如:

sp_addlinkedserver 'ServerName','','SQLOLEDB','dbconn',null,'driver={sql server};server=192.168.1.181;uid=sa,pwd=;'

此处ServerName为自定义名称,dbconn为定义的odbc数据源

一般使用的参数如下:

@server “LINKED SERVER”

@srvproduct “Product name”

@provider “Provider”

@datasrc “Data source”

二、设置服务器选项

使用 sp_serveroption 过程,所要使用的参数如下:

@server “Linked server”

@optname “RPC”或“RPC OUT”

@optvalue True 或 False

三、添加Login

使用 sp_addlinkedsrvlogin 过程,所要使用的参数如下:

@rmtsrvname “Linked server”

@useself True 或 False

@locallogin 本地LOGIN

@rmtuser 远程用户

@rmtpassword 远程用户口令

全部完整的示例如下:

EXEC sp_addlinkedserver 'test','','SQLOLEDB','test',null,'driver={sql server};server=ipaddress;uid=sa,pwd=;'

exec sp_serveroption N'test', N'rpc out', N'true'

exec sp_serveroption N'test', N'rpc', N'true'

exec sp_addlinkedsrvlogin 'test','False',null,'sa',''

访问可以使用如下语句:select * from test.pubs.dbo.tb_maintab

以上在windows2000,sql-server2000测试通过

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航