如何从两个不同的sql服务器获取数据?

2023-12-20

我有一个内联查询,其中 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 中使用。

或者,您可以使用开放行集 http://msdn.microsoft.com/en-us/library/ms190312.aspx(但如果您能够进行设置,链接服务器是最简单的)。 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 添加到内部查询以限制行,并且仅获取您需要的列。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从两个不同的sql服务器获取数据? 的相关文章

随机推荐