通过SQL检索服务器上所有数据库的SQL Azure服务级别

问题描述:

在升级到SQL Azure V12之前,我可以获得SQL上所有数据库的服务级别(S1,S2,P1,P2等)通过在主数据库运行下面的查询Azure数据库服务器:通过SQL检索服务器上所有数据库的SQL Azure服务级别

SELECT db.name DatabaseName, ru.sku AS ServiceTier, 
    slo.name AS ServiceLevel, ru.storage_in_megabytes AS StorageInMB, 
    ru.[time] ResourceUsageDateTime 
FROM sys.databases db 
LEFT OUTER JOIN dbo.slo_database_objectives dbslo ON (dbslo.database_id = db.database_id) 
LEFT OUTER JOIN dbo.slo_service_objectives slo ON (slo.objective_id = dbslo.configured_objective_id) 
LEFT OUTER JOIN sys.resource_usage ru ON (ru.database_name = db.name) 
WHERE 
    ru.[time] = (SELECT MAX([time]) FROM sys.resource_usage); 

然而,这现在会返回一个错误说: “无效的对象名称dbo.slo_database_objectives'。”

有谁知道另一种方式来通过SQL查询来做到这一点吗?

您可以在数据库上查询:

select DATABASEPROPERTYEX(db_name(),'serviceobjective') serviceobjective, 
    DATABASEPROPERTYEX(db_name(),'serviceobjectiveid') serviceobjectiveId, 
    DATABASEPROPERTYEX(db_name(),'edition') edition 

看起来像它的再次合作:

SELECT 
    d.name, 
    slo.*  
FROM sys.databases d 
JOIN sys.database_service_objectives slo  
    ON d.database_id = slo.database_id;