1:服务器操作
EXEC sp_addlinkedserver 
   'Test', --名称
   '', 
   'MSDASQL',
   NULL,
   NULL,
   'DRIVER={SQL Server};SERVER=服务器名;UID=sa;PWD=密码;'
GO
-------以上为添加连接服务器exec sp_addlinkedsrvlogin 'test','false','sa','sa',''
然后就可以:select * from  Test.库名.dbo.表名 
orSELECT a.*
FROM OPENROWSET('MSDASQL',
   'DRIVER={SQL Server};SERVER=serve;UID=sa;PWD=sa',
   db.dbo.table) AS aSELECT *
FROM OPENQUERY(TEST, 'SELECT name, id FROM db.table') 
set  XACT_ABORT on
SET ANSI_NULL_DFLT_ON on

解决方案 »

  1.   

    orselect *  from OPENDATASOURCE('SQLOLEDB','Data 
    Source=192.168.19.1;User 
    ID=sa;Password=pass').pubs.dbo.jobs
    建立过程的中如果要对连接服务器操作,要加上set  XACT_ABORT on
    set ANSI_NULL_DFLT_ON on
    set ANSI_WARNINGS on 
      

  2.   


    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.表名
      

  3.   

    马可兄的这个是怎么用的
    SELECT *
    FROM OPENQUERY(TEST, 'SELECT name, id FROM db.table') 
    set  XACT_ABORT on
    SET ANSI_NULL_DFLT_ON on
    另外大家谁能告诉我这些是什么意思。
    set  XACT_ABORT on
    set ANSI_NULL_DFLT_ON on
    set ANSI_WARNINGS on 
    还有这几个 OPENDATASOURCE,OPENROWSET 的用法。
    谢谢大家,你们提供的方法都很好用。
      

  4.   

    SELECT *
    FROM OPENQUERY(TEST, 'SELECT name, id FROM db.table') 这里的test是建立好的连接服务器
      

  5.   

    对于存储过程,SQL  Server  使用最初创建存储过程时的  SET  ANSI_NULLS  设置值。无论随后何时执行存储过程,SET  ANSI_NULLS  的设置都还原为其最初使用的值并生效。当在存储过程内唤醒调用  SET  ANSI_NULLS  时,其设置不更改。  
     
    在执行分布式查询时应将  SET  ANSI_NULLS  设置为  ON。  
     
    在执行分布式查询时应将  ANSI_WARNINGS  设置为  ON。  
     
    企业管理中的ANSI_NULLS和ANSI_WARNINGS选项不对,但没有方法改动。在查询分析器可以设置ANSI_NULLS和ANSI_WARNINGS选项,而且默认值是对的。所以能在查询分析器创建此类存储过程,而不能在企业管理器创建此类存储过程。就是:
    create proc 名
    as
    SET ANSI_NULL_DFLT_ON on --注意
    SET ANSI_WARNINGS on select * from open...
      

  6.   

    --如果要比较的数据量大的话,建议采用链接服务器:exec sp_addlinkedserver  'srv_lnk','','SQLOLEDB','另一台服务器名'
    exec sp_addlinkedsrvlogin 'srv_lnk','false',null,'sa','密码'
    go--然后用类似下面的语句来查询另一台服务器的数据
    select * from srv_lnk.数据库名.dbo.表名
      

  7.   

    楼主打开sqlserver自代的联机帮助在索引里写入这些不懂的,详细的解释都在里面!
      

  8.   

    --如果只做一些临时的比较处理,可以用openrowset来取另一个服务器上的数据.select * from openrowset('sqloledb','另一台服务器名';'sa';'密码';数据库名.dbo.表名)