4

有没有办法查看目录数据以确定数据库是否为 Azure SQL 数据仓库数据库?

例如,我有一个通过 Azure 创建的初始数据库,但是我发现我可以在此 Azure SQL 数据仓库数据库中创建另一个数据库,而无需指定 EDITION 或 SERVICE_OBJECTIVE。

我假设这是一个类似于 master 的逻辑 Azure SQL 数据库,但它不是系统数据库,所以我希望能够确定我正在连接的数据库的“类型”。到目前为止,我只是想看看是否存在特定的 pdw_ 视图,但是我认为可能有更好的方法。

谢谢您的帮助!

4

1 回答 1

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
于 2015-10-30T00:13:42.290 回答