0

我们有一个场景,我们希望使用 Azure Elastic Query,以便允许我们在地理上分布的多个数据库上运行聚合查询,并且可能会随着时间的推移而添加。但是,在添加或删除数据源时,我们还找不到有用的文档或建议如何设计和运行无需修改(手动)即可可靠运行的 Azure 弹性查询。

非常欢迎有此数据库技术经验的人提供任何建议。

作为进一步的具体限制,不同的源数据库都是 SQL Express DB - 我们正在考虑将它们映射到在线 Azure SQL 实例 (PaaS)。

更新:我在这里看到过类似的问题,但正在寻求更好的答案。

4

1 回答 1

2

您可以使用将在查询中使用的特定名称创建外部源,但使用动态 SQL 以编程方式更改源使用的位置和数据库名称:

ALTER PROCEDURE CETFromNewLocation    AS

BEGIN

DECLARE @location varchar(100)

SET @location = 'myserver.database.windows.net'

DECLARE @CreateExternalTableString varchar(100)

SET @CreateExternalTableString = 'CREATE EXTERNAL DATA SOURCE MyExtSrc
WITH
(
    TYPE=SHARD_MAP_MANAGER,
    LOCATION=' + @location + ' DATABASE_NAME='ShardMapDatabase',
    CREDENTIAL= SMMUser,
    SHARD_MAP_NAME='ShardMap'
);'

    EXEC sp_executesql @CreateExternalTableString

END
于 2018-02-13T13:37:14.747 回答