SQl跨服务器查询的实现

SQl跨服务器查询的二种实现方法: 
  select   *   from   OPENDATASOURCE(  
                    'SQLOLEDB',  
                    'Data   Source=远程ip;User    
                    ).库名.dbo.表名  
   
  insert   本地库名..表名   select   *   from   OPENDATASOURCE(  
                    'SQLOLEDB',  
                    'Data   Source=远程ip;User    
                    ).库名.dbo.表名  
   
  或使用联结服务器:  
  EXEC   sp_addlinkedserver   '别名','','MSDASQL',NULL,NULL,'DRIVER={SQL   Server};SERVER=远程名;UID=用户;PWD=密码;'  
  exec   sp_addlinkedsrvlogin     @rmtsrvname='别名',@useself='false',@locallogin='sa',@rmtuser='sa',@rmtpassword='密码'  
  GO  
  然后你就可以如下:  
  select   *   from   别名.库名.dbo.表名  
  insert   库名.dbo.表名   select   *   from   别名.库名.dbo.表名  
  select   *   into   库名.dbo.新表名   from   别名.库名.dbo.表名  
  go

1、使用 ODBC 的 Microsoft OLE DB 提供程序
EXEC sp_addlinkedserver '别名','','MSDASQL',NULL,NULL,'DRIVER={SQL Server};SERVER=远程名;UID=用户;PWD=密码;'
如果加上参数@catalog,可以指定数据库
exec sp_addlinkedsrvlogin  @rmtsrvname='别名',@useself='false',@locallogin='sa',@rmtuser='sa',@rmtpassword='密码'
 
2、使用SQL Server 的 Microsoft OLE DB 提供程序
exec sp_addlinkedserver @server='别名',@provider='sqloledb',@srvproduct='',@datasrc='远程服务器名'
exec sp_addlinkedsrvlogin  @rmtsrvname='wzb',@useself='false',@locallogin='sa',@rmtuser='sa',@rmtpassword='密码'
然后你就可以如下:
select * from 别名.库名.dbo.表名
insert 库名.dbo.表名 select * from 别名.库名.dbo.表名
select * into 库名.dbo.新表名 from 别名.库名.dbo.表名
go
例1、
此示例在 SQL Server 的实例上创建一台名为 S1_instance1 的链接服务器,
该服务器使用 SQL Server 的 Microsoft OLE DB 提供程序。
EXEC    sp_addlinkedserver    @server='S1_instance1', @srvproduct='',
                                @provider='SQLOLEDB', @datasrc='S1/instance1'
例2、
--建立链接服务器
EXEC sp_addlinkedserver 'xiaoming','','MSDASQL',NULL,NULL,'DRIVER={SQL Server};SERVER=192.168.0.1;UID=sa;PWD=123;'
--建立链接服务器登录映射
exec sp_addlinkedsrvlogin  @rmtsrvname='xiaoming',@useself='false',@locallogin='sa',@rmtuser='sa',@rmtpassword='123'
go
--查询数据
select * from xiaoming.schooladmin.dbo.agent 
--删除链接服务器登录映射和链接服务器:
exec sp_droplinkedsrvlogin 'xiaoming' ,'sa'
exec sp_dropserver  'xiaoming'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值