是否可以执行跨服务器联接(如果数据库位于不同的服务器上,例如SQL Server和Oracle)?如果是,哪些数据库服务器允许跨数据库连接?
是否可以在 SQL Server 或 Oracle 中执行跨服务器加入?我们可以将SQL数据库加入Oracle数据库吗?怎么做到呢?
答案 0 :(得分:1)
显然你可以,
是的 - 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