Azure sql database 如何在另一个Azure SQL中创建Azure SQL Exec或选择另一个表/过程

Azure sql database 如何在另一个Azure SQL中创建Azure SQL Exec或选择另一个表/过程,azure-sql-database,azure-sql-server,Azure Sql Database,Azure Sql Server,我有两个Azure SQL服务器,每个服务器包含一个数据库,我需要在它们之间执行SELECT或存储过程 例如: Server1.database.windows.net数据库:local1 Server2.database.windows.net数据库:remote1 在Server1中:从Server2.remote1.dbo.Orders中选择*,此查询返回订单列表 在Server2中:Exec Server1.local1.dbo.ProcedureOrders,这将在Server1中执行

我有两个Azure SQL服务器,每个服务器包含一个数据库,我需要在它们之间执行SELECT或存储过程

例如:

Server1.database.windows.net数据库:local1 Server2.database.windows.net数据库:remote1

在Server1中:从Server2.remote1.dbo.Orders中选择*,此查询返回订单列表

在Server2中:Exec Server1.local1.dbo.ProcedureOrders,这将在Server1中执行一个存储过程

首先,这可能吗?如果是,如何查询?

您可以使用它跨不同逻辑服务器中的不同数据库查询表,即使它们属于不同的订阅。你可以找到并举例说明


您还可以在不同的逻辑服务器上跨数据库运行事务,如本文所述。

是的,这是可能的。Azure sql数据库不支持链接服务器,但如@Alberto Morillo所述,它可以帮助您在其他sql服务器中查询和执行存储过程

对于远程表查询,以下是步骤:

创建数据库范围的主密钥和凭据:

通过密码创建主密钥加密='MASTER_KEY_PASSWORD';使用IDENTITY=,SECRET=[;]创建数据库范围的凭据

创建外部数据源:

:=创建类型为RDBMS、位置为“”、数据库名称为“”、凭据为[]的外部数据源

外部表格:

创建外部表[database_name.[schema_name]。| schema_name.]TABLE_name{}[,…n]{WITH}[;]

::=数据源=,[SCHEMA\u NAME=N'nonescaped\u SCHEMA\u NAME',][OBJECT\u NAME=N'nonescaped\u OBJECT\u NAME',]

对于执行远程存储过程:

弹性查询还引入了一个存储过程,提供对远程数据库的直接访问。该存储过程称为sp_execute_remote,可用于在远程数据库上执行远程存储过程或T-SQL代码

例如:

EXEC sp_execute_remote
        N'MyExtSrc',
        N'select count(w_id) as foo from warehouse'
有关更多详细信息,请参考:


希望这有帮助。

如果我的答案对您有帮助,希望您能将其标记为答案。这可能对其他社区成员有益。谢谢,太棒了!感谢您的高度解释性回复!