我在一台机子中连接了几台服务器,那么我在这台机子本地的SQL中怎么查找指定的那台服务器中的某个表的记录。

解决方案 »

  1.   

    语句要怎么写,比如 服务器名分别是:Server1,Server2,Server3
      

  2.   

    比如在server1中分别连接同server2,server3的连接.select * from server2.db2.user2.tb2
    select * from server3.db3.user3.tb3
      

  3.   

    我也是像你那样写可是为什么找到的都是本地的数据啊
    Select * from SQlServer.BagData.dbo.Person where sUserNo='0101'
      

  4.   

    1.简单的方法,利用系统函数OPENROWSET/OPENDATASOURCE来实现
     
    SELECT a.*
       FROM OPENROWSET('SQLOLEDB','seattle1';'sa';'MyPass',
       'SELECT * FROM pubs.dbo.authors ORDER BY au_lname, au_fname') AS aSELECT   *
    FROM      OPENDATASOURCE(
             'SQLOLEDB',
             'Data Source=ServerName;User ID=MyUID;Password=MyPass'
             ).Northwind.dbo.Categories2.如果访问远程数据库比较频繁或复杂,可以先创建链接服务器,然后执行Select 语句
      --创建链接服务器
      exec sp_addlinkedserver 
         @server='别名',@provider='sqloledb',@srvproduct='',@datasrc='远程服务器名'
      exec sp_addlinkedsrvlogin  
          @rmtsrvname='wzb',@useself='false',@locallogin='sa',@rmtuser='sa',@rmtpassword='密码'  --执行查询语句
      select * from 别名.库名.dbo.表名