我必须从动态构建的查询中查询两个不同的服务器。
它基本上从一台服务器获取数据,处理它,并将其插入另一台服务器。
唯一的问题是我必须确保它适用于这两种情况: 如果源数据库和目标数据库都在同一台服务器上,如果它们不在。
我理解在SQL Server中使用链接服务器的概念,但我想不出考虑两种方案,相同服务器和不同服务器的方法。
一点帮助?
答案 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