Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL跨服务器联接_Sql_Sql Server_Oracle_Join - Fatal编程技术网

SQL跨服务器联接

SQL跨服务器联接,sql,sql-server,oracle,join,Sql,Sql Server,Oracle,Join,是否可以进行跨服务器连接(如果数据库位于不同的服务器上,例如SQL server和Oracle)?如果是,哪些数据库服务器允许跨数据库联接 是否可以在SQL server或Oracle中执行跨服务器联接?我们可以将Oracle数据库与SQL Server数据库连接起来吗?怎样才能做到呢 显然你可以 是-Oracle和SQL Server都支持链接服务器概念。 这允许您使用由4部分组成的名称引用其他服务器。对于 例如: 从LocalDb.Schema.Table交叉联接中选择* OracleLi

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

是否可以在SQL server或Oracle中执行跨服务器联接?我们可以将Oracle数据库与SQL Server数据库连接起来吗?怎样才能做到呢

显然你可以

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

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

作为旁注,我在Google上搜索了SQL Server或Oracle中的跨数据库联接,第一个结果是重复的堆栈溢出帖子。在发布之前请尝试自己回答问题

显然你可以

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

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


作为旁注,我在Google上搜索了SQL Server或Oracle中的跨数据库联接,第一个结果是重复的堆栈溢出帖子。在发布之前,请尝试自己回答此问题。

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

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

SELECT
*
FROM [Database1].[Schema].[TableA] A
JOIN [Database2].[Schema].[TableB] B
ON A.Key = B.Key
SELECT
*
FROM [ServerName1].[Database1].[Schema].[TableA] A
JOIN [ServerName2].[Database2].[Schema].[TableB] B
ON A.Key = B.Key
如果它们位于不同的服务器或同一服务器机器上的不同SQL实例上,则可以使用链接服务器或桥接查询(OPENDATASOURCE)

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

请参阅本节了解如何添加链接服务器

一旦配置了链接服务器,就可以像这样查询表

SELECT
*
FROM [Database1].[Schema].[TableA] A
JOIN [Database2].[Schema].[TableB] B
ON A.Key = B.Key
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

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

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

SELECT
*
FROM [Database1].[Schema].[TableA] A
JOIN [Database2].[Schema].[TableB] B
ON A.Key = B.Key
SELECT
*
FROM [ServerName1].[Database1].[Schema].[TableA] A
JOIN [ServerName2].[Database2].[Schema].[TableB] B
ON A.Key = B.Key
如果它们位于不同的服务器或同一服务器机器上的不同SQL实例上,则可以使用链接服务器或桥接查询(OPENDATASOURCE)

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

请参阅本节了解如何添加链接服务器

一旦配置了链接服务器,就可以像这样查询表

SELECT
*
FROM [Database1].[Schema].[TableA] A
JOIN [Database2].[Schema].[TableB] B
ON A.Key = B.Key
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

我不能代表Oracle发言,但在SQL Server中,您可以使用链接服务器查询其他服务器。但是,请注意,跨服务器查询的性能不是最好的。也许您可以使用两个不同的连接,并使用第三方语言(即python、php等)解释数据库更好的方法可能是使用一个从源服务器获取数据并将其插入目标服务器的实用程序。我投票认为这太宽泛了,但Lamu对于特殊查询有正确的答案,它是一个链接服务器()。另外,请注意,这里要做的不是“跨数据库”查询。一台服务器将承载许多数据库,在同一个查询中查询其中的两个数据库是一项简单的任务(即在SQL Server中,从DB1.dbo.Table1 T1中选择*并在T1.ID=T2.ID上加入DB2.dbo.Table2 T2)。您要问的是跨服务器查询。我不能代表Oracle,但从SQL Server,您可以使用链接服务器查询其他服务器。但是,请注意,跨服务器查询的性能不是最好的。也许您可以使用两个不同的连接,并使用第三方语言(即python、php等)解释数据库更好的方法可能是使用一个从源服务器获取数据并将其插入目标服务器的实用程序。我投票认为这太宽泛了,但Lamu对于特殊查询有正确的答案,它是一个链接服务器()。另外,请注意,这里要做的不是“跨数据库”查询。一台服务器将承载许多数据库,在同一个查询中查询其中的两个数据库是一项简单的任务(即在SQL Server中,从DB1.dbo.Table1 T1中选择*并在T1.ID=T2.ID上加入DB2.dbo.Table2 T2)。您要问的是跨服务器查询。