Мне нужно выполнить запрос ко всем базам данных (которые имеют одинаковую схему), проблема в том, что это базы данных Azure в Elastic Pool.Я прочитал, что это можно сделать с помощью функции «Центральные серверы управления» в SQL Management Studio, но я установил последнюю версию 18.3, но при попытке развернуть SQL-сервер Azure в разделе «Центральные серверы управления» я получаю следующую ошибку:
База данных SQL 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