打印本文 打印本文 关闭窗口 关闭窗口
使用sql-server进行分布式查询(链接服务器)
作者:武汉SEO闵涛  文章来源:敏韬网  点击数1098  更新时间:2007/11/14 12:58:09  文章录入:mintao  责任编辑:mintao
可以使用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测试通过



 

打印本文 打印本文 关闭窗口 关闭窗口