首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查询多个Azure SQL数据库- Azure SQL数据库不能用作中央管理服务器

查询多个Azure SQL数据库- Azure SQL数据库不能用作中央管理服务器
EN

Stack Overflow用户
提问于 2019-09-25 22:07:05
回答 1查看 1.6K关注 0票数 1

我需要对所有数据库(具有相同模式的数据库)运行一个查询,问题是这些数据库是Elastic中的Azure数据库。我读到这可以使用中的“中央管理服务器”功能来完成,但我已经安装了最新版本18.3,但是当我尝试在“中央管理服务器”下展开Azure SQL server时,会出现以下错误:

Azure SQL数据库不能用作中央管理服务器

我试图对所有数据库运行的查询类型如下所示,它在本地Server实例上工作良好,但在Azure SQL Server上不工作。

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-26 01:04:21

Azure数据库不支持使用中央管理服务器管理多台服务器

由于您的数据库位于同一个弹性池中,所以可以使用弹性查询对所有数据库运行查询。

弹性查询功能(预览)使您能够运行跨Azure SQL数据库中多个数据库的Transact-SQL查询。它允许您执行跨数据库查询来访问远程表,并连接Microsoft和第三方工具(Excel、Power BI、Tableau等)。若要使用多个数据库跨数据层查询,请执行以下操作。使用此功能,您可以将查询扩展到SQL数据库中的大型数据层,并在业务智能(BI)报告中可视化结果。

有关更多细节,请参见T-SQL查询

  1. 跨扩展云数据库的报告(预览)
  2. 具有不同模式的云数据库查询(预览)

希望这能有所帮助。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58107152

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档