我们有一个方案,我们希望在其中使用Azure弹性查询,以便我们可以在多个数据库上运行汇总查询,并且可以随着时间的推移添加。但是,我们还无法找到有用的文档或建议如何设计和运行可以可靠地操作而无需修改的Azure弹性查询,同时添加或删除了数据源。
。在此DB技术方面经验丰富的人的任何建议都将非常欢迎。
作为另一个特定的约束,不同的源数据库都是SQL Express DBS-我们正在考虑将其映射到在线Azure SQL实例(PAAS(。
更新:我已经在这里询问/回答了类似的东西,但是我正在寻求更好的答案。
您可以使用特定名称创建外部源,该名称将在查询中使用,但可以通过编程方式更改源使用Dynamic 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