怎么从两个不同的 sql 服务器获取数据?

本教程将介绍如何从两个不同的 sql 服务器获取数据?的处理方法,这篇教程是从别的地方看到的,然后加了一些国外程序员的疑问与解答,希望能对你有所帮助,好了,下面开始学习吧。

怎么从两个不同的 sql 服务器获取数据? 教程 第1张

问题描述

我有一个内联查询,其中我在 server1 中有一个 table1,在 server2 中有另一个 table2.我需要加入这两个表,并获取数据.

我可以这样做,例如连接到一台服务器、获取数据并连接到下一台服务器...获取数据.并加入他们.

但是有什么其他更好的方法.我听说过链接服务器.这对这里有帮助吗?

提前致谢!!!

推荐答案

是的,在一台服务器上设置一个链接服务器到另一台服务器.然后你可以用一个连接做一个普通的查询.它看起来像这样:

SELECT t1.Col1
 ,  t2.ColA
FROM server1Table t1
INNER JOIN SERVER2.dbname.dbo.tableName t2 ON t1.TheId = t2.TheId

这假设您在 Server1 上运行查询.您还可以拥有两个链接服务器并使用 [servername].[dbname].[schema].[table] 引用它们,然后在 SQL 中正常使用.

或者,您可以使用 OPENROWSET(但链接服务器最简单如果你能够设置它).OpenRowSet 如下所示:

SELECT t1.Col1
 ,  t2.ColA
FROM server1Table t1
INNER JOIN  OPENROWSET('SQLNCLI', 'Server=Server2;Trusted_Connection=yes;',
  'SELECT t2.ColA, t2.TheId FROM dbname.dbo.tableName') AS t2
  ON t1.TheId = t2.TheId

然后你就可以加入'a',就好像它是一个本地表一样.在引擎盖下,它可能会将所有数据拉到本地数据库,因此您应该考虑将 WHERE 添加到内部查询以限制行,并且只获取您需要的列.

好了关于怎么从两个不同的 sql 服务器获取数据?的教程就到这里就结束了,希望趣模板源码网找到的这篇技术文章能帮助到大家,更多技术教程可以在站内搜索。