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

发表于:2007-07-02来源:作者:点击数: 标签:
可以使用 sql -server企业管理器进行建立,注意其中的rpc及rpc out两项,也可以使用sql语句来完成定义,主要涉及到三个存储过程 sp_addlinkedserver,sp_serveroption和sp_addlinkedsrvlogin,以下是三个存储过程的语法: sp_addlinkedserver 创建一个链接的
可以使用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测试通过


 

原文转自:http://www.ltesting.net