现在的位置: 首页 > 综合 > 正文

存储过程跨系统跨数据库操作

2012年05月04日 ⁄ 综合 ⁄ 共 2155字 ⁄ 字号 评论关闭

第一步建立一个远程连接  
   
  使用sql-server进行分布式查询(链接服务器)    
  可以使用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_helpserver   /*---查看远程服务器的列表-------*/    
   
  exec   sp_helplinkedsrvlogin   /*------查看远程服务器的登录用户---------*/  
   
  exec   sp_droplinkedsrvlogin   'sestlserver',null   /*----删除远程服务器的登录用户-----*/  
   
   
  exec   sp_dropserver   'sestlserver','droplogins'/*-----删除远程服务器------*/  
   
     
   
  EXEC   sp_addlinkedserver   'sestlserver','','SQLOLEDB','sestlserver',null,'driver={sql    server};server=192.168.0.2;uid=sa,pwd=;'  
  exec   sp_serveroption   N'sestlserver',   N'rpc   out',   N'true'    
  exec   sp_serveroption   N'sestlserver',   N'rpc',   N'true'  
  exec   sp_addlinkedsrvlogin   'sestlserver','False',null,'sa',

也可以这么定义远程连接:
exec sp_addlinkedserver 'dbx','','SQLOLEDB','192.168.0.1'

exec sp_addlinkedsrvlogin 'dbx','false',null,'sa',''

执行:
select * from dbx.数据库名.dbo.表名

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/Flora_qxy/archive/2006/11/08/1372626.aspx

抱歉!评论已关闭.