select * into 本地库名..表名 from OPENDATASOURCE(
         'SQLOLEDB',
         'Data Source=远程ip;User ID=sa;Password=密码'
         ).库名.dbo.表名insert 本地库名..表名 select * from OPENDATASOURCE(
         'SQLOLEDB',
         'Data Source=远程ip;User ID=sa;Password=密码'
         ).库名.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.   

    --如果临时查询,数据量不大,可以用:
    select * from(
    select * from openrowset('sqloledb','A电脑';'sa';'',A库.dbo.a)
    ) a,(
    select * from openrowset('sqloledb','A电脑';'sa';'',A库.dbo.a)
    ) b where 条件
      

  2.   

    --否则的话,用链服务器,下面的以在A电脑上操作为例子:--创建链接服务器
    exec sp_addlinkedserver  'srv_lnk','','SQLOLEDB','B电脑'
    exec sp_addlinkedsrvlogin 'srv_lnk','false',null,'sa'
    go--然后用下面的语句导入表
    select * from A库.dbo.a a ,
    (select * into 表 from srv_lnk.B库.dbo.b) b where 条件go
    --后删除链接服务器
    exec sp_dropserver 'srv_lnk','droplogins'
      

  3.   

    --如果临时查询,数据量不大,可以用:
    select * from(
    select * from openrowset('sqloledb','A电脑';'sa';'',A库.dbo.a)
    ) a,(
    select * from openrowset('sqloledb','B电脑';'sa';'',B库.dbo.b)
    ) b where 条件
      

  4.   

    我還有個問題,opendatasource和openrowset哪個速度快?