我需要对所有数据库(具有相同模式的数据库)运行一个查询,问题是这些数据库是Elastic中的Azure数据库。我读到这可以使用中的“中央管理服务器”功能来完成,但我已经安装了最新版本18.3,但是当我尝试在“中央管理服务器”下展开Azure SQL server时,会出现以下错误:
Azure SQL数据库不能用作中央管理服务器
我试图对所有数据库运行的查询类型如下所示,它在本地Server实例上工作良好,但在Azure SQL Server上不工作。
SET NOCOUNT ON;
IF OBJECT_ID (N'tempdb.dbo.#temp') IS NOT NULL
DROP TABLE #temp
CREATE TABLE #temp
(
[COUNT] INT
, DB VARCHAR(50)
)
DECLARE @TableName NVARCHAR(50)
SELECT @TableName = '[dbo].[CustomAttributes]'
DECLARE @SQL NVARCHAR(MAX)
SELECT @SQL = STUFF((
SELECT CHAR(13) + 'SELECT ''' + name + ''', COUNT(1) FROM [' + name + '].' + @TableName + 'WHERE dataType = 2'
FROM sys.databases
WHERE OBJECT_ID('[' + name + ']' + '.' + @TableName) IS NOT NULL
FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'), 1, 1, '')
INSERT INTO #temp (DB, [COUNT])
EXEC sys.sp_executesql @SQL
SELECT *
FROM #temp t发布于 2019-09-26 01:04:21
Azure数据库不支持使用中央管理服务器管理多台服务器。

由于您的数据库位于同一个弹性池中,所以可以使用弹性查询对所有数据库运行查询。
弹性查询功能(预览)使您能够运行跨Azure SQL数据库中多个数据库的Transact-SQL查询。它允许您执行跨数据库查询来访问远程表,并连接Microsoft和第三方工具(Excel、Power BI、Tableau等)。若要使用多个数据库跨数据层查询,请执行以下操作。使用此功能,您可以将查询扩展到SQL数据库中的大型数据层,并在业务智能(BI)报告中可视化结果。
有关更多细节,请参见T-SQL查询
希望这能有所帮助。
https://stackoverflow.com/questions/58107152
复制相似问题