SQL Cross Server加入

时间:2017-12-15 14:48:44

标签: sql sql-server oracle join

是否可以执行跨服务器联接(如果数据库位于不同的服务器上,例如SQL Server和Oracle)?如果是,哪些数据库服务器允许跨数据库连接?

是否可以在 SQL Server Oracle 中执行跨服务器加入?我们可以将SQL数据库加入Oracle数据库吗?怎么做到呢?

2 个答案:

答案 0 :(得分:1)

显然你可以,

  

STackover post

     

是的 - Oracle和SQL Server都支持链接服务器概念。   这允许您使用4部分名称引用其他服务器。对于   例如:

     

从LocalDb.Schema.Table中选择*交叉连接           OracleLinkedServer.RemoteDb.RemoteSchema.RemoteTable

作为旁注,我用Google搜索cross-database Joins in SQL Server or Oracle,第一个结果是重复的堆栈溢出帖子。请在发布

之前尝试自己回答问题

答案 1 :(得分:1)

您可以在同一服务器上的不同数据库或MS SQL Server中的不同服务器上连接多个表。

如果两个数据库都在同一台服务器上,您可以像这样加入

SELECT
*
FROM [Database1].[Schema].[TableA] A
JOIN [Database2].[Schema].[TableB] B
ON A.Key = B.Key

如果它们位于同一服务器计算机上的不同服务器或不同SQL实例上,则可以使用链接服务器或桥接查询(OPENDATASOURCE)。

要使用链接服务器,首先需要添加链接服务器连接

请参阅此Article以了解如何添加链接服务器。

配置链接服务器后,您可以像这样查询表

SELECT
*
FROM [ServerName1].[Database1].[Schema].[TableA] A
JOIN [ServerName2].[Database2].[Schema].[TableB] B
ON A.Key = B.Key

或者您可以使用opendatasource

SELECT
    * FROM TableA A
JOIN OPENDATASOURCE (
   'SQLNCLI', -- or SQLNCLI
   'Data Source=OtherServer\InstanceName;Catalog=RemoteDB;User ID=SQLLogin;Password=Secret;').RemoteDB.dbo.SomeTable B
ON A.KEY = B.KEY