4

データベースが Azure SQL データ ウェアハウス データベースであるかどうかを判断するために、カタログ データを調べる方法はありますか?

たとえば、Azure 経由で作成した最初のデータベースがありますが、EDITION または SERVICE_OBJECTIVE を指定しなくても、この Azure SQL Data Warehouse データベースに別のデータベースを作成できることがわかりました。

これは 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 に答える