Bra*_*d V 5 t-sql azure azure-sql-database
有谁知道如何使用TSQL获取Azure数据库的版本(标准等)和Service_Objective(S1,S2等)?我可以找到PowerShell和Portal解释,但我找不到任何TSQL的参考.
您可以使用此查询来检查数据库的Service Edition:
SELECT DATABASEPROPERTYEX('Database_Name', 'EDITION')
SELECT DATABASEPROPERTYEX('Database_Name', 'ServiceObjective')
Run Code Online (Sandbox Code Playgroud)
如果该ServiceObjective线路不起作用,可能有多种原因:
您可能正在尝试为没有定义服务主题的版本获取服务目标.例如,网络版.对于Web Edition,ServiceObjective应返回null.
正如Satya在评论中提到的,这仅适用于V12服务器.因此,如果您尝试在V12之前的服务器上运行此命令,则此命令将不起作用.
更新
我最近切换到使用Azure系统表sys.database_service_objectives.这允许我在单个查询中检索SQL数据库弹性池名称.为方便起见,原始答案仍记录在下面
SELECT @@VERSION AS AzureVersion,
db_name() AS [Name],
edition AS AzureEdition,
service_objective AS AzureTier,
elastic_pool_name AS ElasticPool
FROM sys.database_service_objectives
Run Code Online (Sandbox Code Playgroud)
原始答案
我喜欢一次抓取所有三个值,使用db_name()指向当前数据库,并NULL使用更有用的v11服务器消息替换ServiceObjective.
SELECT @@VERSION AS AzureVersion,
DATABASEPROPERTYEX(DB_NAME(), 'Edition') AS AzureEdition,
COALESCE(DATABASEPROPERTYEX(DB_NAME(), 'ServiceObjective'), 'N/A in v11') AS AzureTier
Run Code Online (Sandbox Code Playgroud)