查询两个不同的服务器

时间:2010-05-18 21:14:55

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

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

它基本上从一台服务器获取数据,处理它,并将其插入另一台服务器。

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

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

一点帮助?

2 个答案:

答案 0 :(得分:4)

不需要两个链接服务器......每个服务器只需一个。实施例

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

答案 1 :(得分:1)

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

SELECT * FROM SERVER.DATABASE.SCHEMA.TABLE