服务器 频道

使用sql-server进行分布式查询

  【IT168 服务器学院】可以使用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测试通过

0
相关文章