【问题标题】:How to query 2 identical SQL Server databases on different server machines如何在不同的服务器机器上查询 2 个相同的 SQL Server 数据库
【发布时间】:2014-04-04 15:58:06
【问题描述】:

我需要查询以从 2 个结构相同但位于不同服务器计算机上的远程数据库中选择完整列表。

如何使用sp_addlinkedserver在同一个查询中查询2个数据库?

要获得这样的信息,每个数据库都需要相同的用户名和密码

SELECT  
   [Pays]
FROM  
   /// [db1].[dbo].[liste_pays] Union [db1].[dbo].[liste_pays]///

它们甚至具有相同的名称但内部的数据不同

【问题讨论】:

  • 你能看到两台服务器吗?我的意思是你可以在其他数据库上执行 SELECT [Pays] FROM [db1].[dbo].[liste_pays] 吗?
  • 无论如何你的查询的sintax是错误的
  • 我想要一个允许我进行这样查询的解决方案

标签: sql sql-server


【解决方案1】:

假设: 您有一个服务器 SR1、Schema SC1 表 tbl1 上的数据库 DB1 和 Pays 列。 您有一个服务器 SR2、Schema SC1 表 tbl1 上的数据库 DB1 和 Pays 列。

首先,您需要在 SR1 和 SR2 之间添加链接服务器关系。 一旦成立。 你可以这样查询:

SELECT ABC.Pays FROM SR1.DB1.SC1.Tbl1 ABC
UNION ALL
SELECT DEF.Pays FROM SR2.DB1.SC1.Tbl1 DEF

【讨论】:

    【解决方案2】:

    Click Here 获取有关如何创建链接服务器的简单教程。

    创建链接服务器后,我们可以如下查询:

    select * from LinkedServerName.DatabaseName.dbo.TableName
    

    【讨论】:

      【解决方案3】:

      您需要使用 sp_addlinkedserver 创建服务器链接。有关用法,请参阅参考文档。建立服务器链接后,您将正常构建查询,只需在数据库名称前加上其他服务器。即:

      参考文档:http://msdn.microsoft.com/en-us/library/ms190479.aspx

      SELECT tab2.column_name  
      FROM  [DB1.mdf].[dbo].[table_name_1] tab1 INNER JOIN [DB2.mdf].[dbo].[table_name_2]  tab2   
      ON tab1.col_name = tab2.col_name
      

      【讨论】:

        猜你喜欢
        • 2011-09-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-11-18
        • 2010-09-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多