【问题标题】:Query two different Servers查询两个不同的服务器
【发布时间】:2010-05-18 21:14:54
【问题描述】:

我必须从动态构建的查询中查询两个不同的服务器。

它基本上是从一台服务器获取数据,对其进行处理,然后将其插入另一台服务器。

唯一的问题是我必须确保它适用于两种情况: 如果源数据库和目标数据库在同一台服务器上,或者它们不在。

我了解在 SQL Server 中使用链接服务器的概念,但我想不出一种方法来同时考虑相同的服务器和不同的服务器。

有点帮助?​​

【问题讨论】:

    标签: .net sql sql-server sql-server-2005 tsql


    【解决方案1】:

    不需要两台链接服务器...每台服务器只需一台。示例

    PhysicalServerA
       SQLServerA
          DatabaseA
          DatabaseB
       LinkedSQLServerB  // A linked server to SQL Server B
    
    PhysicalServerB
       SQLServerB
          DatabaseC
          DatabaseD
       LinkedSQLServerA  // A linked Server to SQL Server A
    

    现在服务器 A 可以对自己进行如下查询:

    SELECT * FROM SQLServerA.DatabaseA.dbo.TableName
    

    以及对 LinkedSQLServerB 的查询

    SELECT * FROM SQLServerB.DatabaseC.dbo.TableName
    

    现在服务器 B 可以对自己进行如下查询:

    SELECT * FROM SQLServerB.DatabaseC.dbo.TableName
    

    以及对 LinkedSQLServerA 的查询

    SELECT * FROM SQLServerA.DatabaseA.dbo.TableName
    

    【讨论】:

    • 也许我不太了解使用链接服务器的概念。但无论如何,在我在这里发布之前,我尝试在我的本地服务器中使用我的本地服务器的完全限定名称,但它不起作用,这让我认为这种语法只允许用于链接服务器,而不是本地.不过你的回答很清楚。非常感谢!
    【解决方案2】:

    对两个表(本地和远程)使用完全限定的表名

    从 SERVER.DATABASE.SCHEMA.TABLE 中选择 *

    【讨论】:

    • 您不需要两台链接服务器,只需一台。只要您使用 Server.Database.Schema.Table 表示法,您只需要一个链接到远程服务器的服务器
    猜你喜欢
    • 2019-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-05
    相关资源
    最近更新 更多