SQL服务器中两个不同服务器之间的查询表
Query tables between two different servers in SQL Server
我有两个数据库,一个在 SQL Server 中,一个在 Azure SQL Synapse 中。现在我想在来自这些不同服务器的两个表之间进行一个查询。
例如:
SQL 服务器名称:server1
数据库名称:db1
Table 姓名:tb1
Azure Synapse 名称:prod-synapse-2
数据库名称:db2
Table 姓名:tb2
现在查询应该是这样的:
select
tb1.col1, tb1.col2, tb2.col3, tb2.col4
from
tb1
outer join
tb2 on tb1.col5 = tb2.col5
上面的查询非常简单,可以连接同一数据库中的两个表或同一服务器中两个不同数据库中的两个表。
但我希望建议在 2 个不同的服务器之间进行上述查询。
我在许多类似的 Whosebug 问题中看到,他们建议使用链接服务器的答案,但在我的情况下不能这样做,因为我不会获得创建链接服务器的权限,并且 link Microsoft SQL Server Management Studio 中的 2 台服务器。
提前致谢
另一种查询托管在远程 SQL 服务器上的数据库的方法是 OPENROWSET T-SQL 函数。要使用 OPENROWSET 即席方法,您需要提供连接到远程 SQL 服务器和许多其他资源所需的所有连接信息。
使用 OPENROWSET 需要启用与 OPENDATASOURCE 函数相同的 Ad Hoc Distributed Queries 高级配置选项。
您需要提供提供商的名称、连接字符串和查询如下:
OPENROWSET(‘providername’,’datascource,’query)
我有两个数据库,一个在 SQL Server 中,一个在 Azure SQL Synapse 中。现在我想在来自这些不同服务器的两个表之间进行一个查询。
例如:
SQL 服务器名称:
server1
数据库名称:
db1
Table 姓名:
tb1
Azure Synapse 名称:
prod-synapse-2
数据库名称:
db2
Table 姓名:
tb2
现在查询应该是这样的:
select
tb1.col1, tb1.col2, tb2.col3, tb2.col4
from
tb1
outer join
tb2 on tb1.col5 = tb2.col5
上面的查询非常简单,可以连接同一数据库中的两个表或同一服务器中两个不同数据库中的两个表。
但我希望建议在 2 个不同的服务器之间进行上述查询。
我在许多类似的 Whosebug 问题中看到,他们建议使用链接服务器的答案,但在我的情况下不能这样做,因为我不会获得创建链接服务器的权限,并且 link Microsoft SQL Server Management Studio 中的 2 台服务器。
提前致谢
另一种查询托管在远程 SQL 服务器上的数据库的方法是 OPENROWSET T-SQL 函数。要使用 OPENROWSET 即席方法,您需要提供连接到远程 SQL 服务器和许多其他资源所需的所有连接信息。
使用 OPENROWSET 需要启用与 OPENDATASOURCE 函数相同的 Ad Hoc Distributed Queries 高级配置选项。
您需要提供提供商的名称、连接字符串和查询如下:
OPENROWSET(‘providername’,’datascource,’query)