从Azure中的Elastic Database调用存储过程

时间:2015-12-07 10:39:32

标签: sql stored-procedures azure-sql-database

以下是该方案:

  • 弹性数据库A连接到数据库B
  • 数据库B包含返回数据库A中所需结果集的存储过程

据我所知,标题无法完成。只有表格或视图似乎可以在我的测试中发挥作用。

所以下一个是将存储过程作为数据库B中的视图生成,然后从DB A调用该视图。

但是视图无法调用存储过程,甚至尝试查看视图和存储过程之间的表值函数,但这也不允许。

如何将结果集从DB B中的存储过程获取到DB A?

1 个答案:

答案 0 :(得分:1)

目前,使用Elastic Query执行远程存储过程调用的唯一方法是使用“分片”设置定义外部数据源。例如。您已使用

定义了外部源
CREATE EXTERNAL DATA SOURCE MyElasticDBQueryDataSrc WITH
  (TYPE = SHARD_MAP_MANAGER, ...  )

在这种情况下,您可以访问名为 SP_Execute_Fanout 的实用程序过程,该过程可用于在每个分片上调用存储过程(或执行任何SQL操作),并返回UNION ALL结果集。此实用程序proc详细here

Elastic Query的“垂直分区”方案(例如TYPE = RDBMS)尚未提供此功能,但是我们将在预览继续时添加此类功能,以便在单个中调用远程存储过程数据库变得简单。