有没有办法查看目录数据以确定数据库是否是Azure SQL数据仓库数据库?
例如,我有一个我通过Azure创建的初始数据库,但是我发现我可以在此Azure SQL数据仓库数据库中创建另一个数据库,而无需指定EDITION或SERVICE_OBJECTIVE。
我假设这是一个逻辑Azure SQL数据库,如master,但它不是系统数据库,所以我希望能够确定我连接到的数据库的“类型”。到目前为止,我只是想看看是否存在特定的pdw_视图,但我认为可能有更好的方法。
感谢您的帮助!
答案 0 :(得分:4)
注意:以下建议适用于发布时间。此行为将来可能会发生变化。
今天没有一种直截了当的方法。我已经添加了一个功能请求,用于通过TSQL发现服务目标的方法。作为快捷方式,您可以运行以下命令:
SELECT
name,
recovery_model,
recovery_model_desc
FROM
sys.databases
WHERE
name = DB_NAME();
如果recovery_model = 3(SIMPLE),则这是一个SQL数据仓库数据库。如果recovery_model = 1(FULL),则这是一个SQL数据库。
2016年5月更新:
如果您连接到Azure SQL DW数据库,以下查询将返回DataWarehouse:
SELECT DATABASEPROPERTYEX(DB_NAME(), 'Edition') As Edition
更新#2: 您可以查询sys.database_service_objectives DMV以获取此信息:
SELECT
db.[name] AS [Name],
ds.[edition] AS [Edition],
ds.[service_objective] AS [ServiceObject]
FROM
sys.database_service_objectives ds
JOIN sys.databases db ON ds.database_id = db.database_id