SQL Server中两个不同服务器之间的查询表
我有两个数据库,一个在 SQL Server 中,一个在 Azure SQL Synapse 中。现在我想要在这些不同服务器的两个表之间执行一个查询。
例如:
SQL Server 名称:
server1
数据库名称:
db1
表名称:
tb1
Azure Synapse 名称:
prod-synapse-2
数据库名称:
db2
表名称:
tb2
现在查询应该是这样的:
select
tb1.col1, tb1.col2, tb2.col3, tb2.col4
from
tb1
outer join
tb2 on tb1.col5 = tb2.col5
上面的查询非常简单,可以连接同一数据库中的两个表或同一服务器内两个不同数据库中的两个表。
但我想要建议在两个不同的服务器之间进行上述查询。
我在许多与此类似的 stackoverflow 问题中看到过,他们建议使用链接服务器作为答案,但这在我的情况下无法完成,因为我不会获得创建链接服务器并链接 Microsoft SQL Server 中的 2 个服务器的访问权限管理工作室。
提前致谢
I have two databases, one in SQL Server and one in Azure SQL Synapse. Now I want to have one single query that should be done between two tables from these different servers.
For example:
SQL Server name :
server1
Database name :
db1
Table name :
tb1
Azure Synapse name :
prod-synapse-2
Database name :
db2
Table name :
tb2
Now query should be like this:
select
tb1.col1, tb1.col2, tb2.col3, tb2.col4
from
tb1
outer join
tb2 on tb1.col5 = tb2.col5
The above query is very simple to join two tables from the same database or two tables from the 2 different database within same server.
But I want suggestions to have the above query between 2 different servers.
I have seen in many stackoverflow questions similar to this, they suggested an answer using Linked Server, but that cannot be done in my case, because I will not be provided with access to create Linked server, and link the 2 servers in Microsoft SQL Server Management Studio.
Thanks in advance
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
查询远程 SQL Server 中托管的数据库的另一种方法是 OPENROWSET T-SQL 函数。要使用 OPENROWSET 即席方法,您需要提供连接到远程 SQL Server 和许多其他资源所需的所有连接信息。
使用 OPENROWSET 需要启用与 OPENDATASOURCE 功能相同的Ad Hoc Distributed Queries高级配置选项。
您需要提供提供商的名称、连接字符串和查询,如下所示:
Another way to query a database hosted in a remote SQL Server is the OPENROWSET T-SQL function. To use the OPENROWSET ad hoc method, you need to provide all connection information that is required to connect to the remote SQL server and many other resources.
Using OPENROWSET requires enabling the Ad Hoc Distributed Queries advanced configuration option same as the OPENDATASOURCE function.
You need to provide the provider’s name, the connection string and the query as follows: