DATABASEPROPERTYEX (Transact-SQL)

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

SQL Server の指定データベースについては、指定のデータベース オプションまたはプロパティの現在の設定がこの関数によって返されます。

Transact-SQL 構文表記規則

構文

DATABASEPROPERTYEX ( database , property )  

Note

SQL Server 2014 (12.x) 以前のバージョンの Transact-SQL 構文を確認するには、以前のバージョンのドキュメントを参照してください。

引数

database
データベースの名前を指定する式。このデータベースに対して、DATABASEPROPERTYEX は指定されたプロパティ情報を返します。 database には、データ型 nvarchar(128) が与えられます。

SQL Database については、DATABASEPROPERTYEX は現在のデータベースの名前を必要とします。 別のデータベース名が指定されている場合、すべてのプロパティに対して NULL を返します。

property
返されるデータベース プロパティの名前を指定する式。 property にはデータ型 varchar(128) が与えられ、この表のいずれかの値が入ります。

注意

データベースがまだ開始されていない場合、DATABASEPROPERTYEX を呼び出したとき、DATABASEPROPERTYEX がメタデータから検索せず、データベースに直接アクセスすることで値を引き出した場合、NULL が返されます。 AUTO_CLOSE が ON に設定されているか、それ以外の方法でオフラインになっているデータベースは '開始されていない' と見なされます。

プロパティ 説明 返される値
照合順序 データベースの既定の照合順序名です。 照合順序名

NULL: データベースは開始されていません。

基本データ型: nvarchar(128)
ComparisonStyle 照合順序の Windows 比較形式です。 次のスタイルの値を使用し、完全な ComparisonStyle 値のビットマップを構築します。

大文字と小文字を区別しない: 1
アクセントを無視する: 2
ひらがなとカタカナを区別しない: 65536
全角と半角を区別しない: 131072

たとえば、既定値 196609 は、大文字と小文字を区別しない、ひらがなとカタカナを区別しない、全角と半角を区別しないという 3 つのオプションを足した値を表しています。
比較スタイルを返します。

バイナリ照合順序ではすべて 0 が返されます。

基本データ型: int
Edition データベースのエディションまたはサービス レベルです。 適用対象: Azure SQL データベース、Azure Synapse Analytics。



General Purpose

Business Critical

Basic

Standard

Premium

System (マスター データベース向け)

NULL: データベースは開始されていません。

基本データ型: nvarchar(64)
IsAnsiNullDefault データベースは、ISO のルールに従い NULL 値を許可します。 1:TRUE

0:FALSE

NULL: 無効な入力

基本データ型: int
IsAnsiNullsEnabled NULL 値との比較はすべて、不明として評価されます。 1:TRUE

0:FALSE

NULL: 無効な入力

基本データ型: int
IsAnsiPaddingEnabled 比較または挿入を行う前に、対象の文字列が同じ長さになるようにパディングを行います。 1:TRUE

0:FALSE

NULL: 無効な入力

基本データ型: int
IsAnsiWarningsEnabled 一般的なエラー状態が発生したとき、SQL Server からエラー メッセージまたは警告メッセージが出力されます。 1:TRUE

0:FALSE

NULL: 無効な入力

基本データ型: int
IsArithmeticAbortEnabled クエリ実行中にオーバーフローまたは 0 除算エラーが発生したとき、クエリは終了します。 1:TRUE

0:FALSE

NULL: 無効な入力

基本データ型: int
IsAutoClose 最後のユーザーが終了すると、データベースは即座にシャットダウンし、リソースを解放します。 1:TRUE

0:FALSE

NULL: 無効な入力

基本データ型: int
IsAutoCreateStatistics クエリのパフォーマンスを向上させるために、クエリ オプティマイザーが必要に応じて 1 列ずつの統計を作成します。 1:TRUE

0:FALSE

NULL: 無効な入力

基本データ型: int
IsAutoCreateStatisticsIncremental 可能な場合、自動作成された 1 列ずつの統計は増分統計になります。 適用対象: SQL Server 2014 (12.x) 以降。

1:TRUE

0:FALSE

NULL: 無効な入力

基本データ型: int
IsAutoShrink データベース ファイルを、自動的に行われる定期的な圧縮の対象とします。 1:TRUE

0:FALSE

NULL: 無効な入力

基本データ型: int
IsAutoUpdateStatistics 古くなっている可能性がある既存の統計がクエリで使用されるとき、クエリ オプティマイザーによってその統計が更新されます。 1:TRUE

0:FALSE

NULL: 入力は無効です

基本データ型: int
IsClone データベースは、DBCC CLONEDATABASE で作成されたユーザー データベースをスキーマと統計のみで複製したものです。 詳細については、Microsoft サポート技術情報をご覧ください。 適用対象:SQL Server 2014 (12.x) SP2 以降。

1:TRUE

0:FALSE

NULL: 無効な入力

基本データ型: int
IsCloseCursorsOnCommitEnabled トランザクションがコミットされると、開いているすべてのカーソルが閉じられます。 1:TRUE

0:FALSE

NULL: 無効な入力

基本データ型: int
IsDatabaseSuspendedForSnapshotBackup データベースは中断されています。 1:TRUE

0:FALSE

NULL: 無効な入力

基本データ型: int
IsFulltextEnabled データベースではフルテキストおよびセマンティック インデックス作成を有効にします。 適用対象: SQL Server 2008 (10.0.x) 以降。



1:TRUE

0:FALSE

NULL: 入力は無効です

基本データ型: int

注: このプロパティの値は無効になりました。 ユーザー データベースでは、常にフルテキスト検索が有効になっています。 SQL Server の将来のリリースでこのプロパティはなくなります。 新しい開発作業では、このプロパティを使用しないでください。このプロパティを現在使用しているアプリケーションについては、できるだけ早く修正してください。
IsInStandBy データベースは読み取り専用のオンライン状態で、復元ログが許可されています。 1:TRUE

0:FALSE

NULL: 無効な入力

基本データ型: int
IsLocalCursorsDefault カーソル宣言の既定値は LOCAL です。 1:TRUE

0:FALSE

NULL: 無効な入力

基本データ型: int
IsMemoryOptimizedElevateToSnapshotEnabled セッション設定 TRANSACTION ISOLATION LEVEL が READ COMMITTED、READ UNCOMMITTED、あるいはそれより下位の分離レベルに設定されているとき、SNAPSHOT 分離を使用してメモリ最適化テーブルにアクセスします。 適用対象: SQL Server 2014 (12.x) 以降。



1:TRUE

0:FALSE

基本データ型: int
IsMergePublished レプリケーションがインストールされている場合は、SQL Server では、マージ レプリケーションのためにデータベース テーブルをパブリッシュできます。 1:TRUE

0:FALSE

NULL: 無効な入力

基本データ型: int
IsNullConcat NULL を連結したオペランドは、NULL になります。 1:TRUE

0:FALSE

NULL: 無効な入力

基本データ型: int
IsNumericRoundAbortEnabled 式の有効桁数が失われた場合にエラーが生成されます。 1:TRUE

0:FALSE

NULL: 無効な入力

基本データ型: int
IsParameterizationForced データベース SET オプション PARAMETERIZATION が FORCED に設定されています。 1:TRUE

0:FALSE

NULL: 無効な入力
IsQuotedIdentifiersEnabled 識別子に二重引用符を使用できます。 1:TRUE

0:FALSE

NULL: 無効な入力

基本データ型: int
IsPublished レプリケーションがインストールされている場合は、SQL Server では、データベースのテーブルをスナップショット レプリケーションまたはトランザクション レプリケーション用にパブリッシュできます。 1:TRUE

0:FALSE

NULL: 無効な入力

基本データ型: int
IsRecursiveTriggersEnabled トリガーの再帰的な発生が許可されています。 1:TRUE

0:FALSE

NULL: 無効な入力

基本データ型: int
IsSubscribed データベースはパブリケーションにサブスクライブされます。 1:TRUE

0:FALSE

NULL: 無効な入力

基本データ型: int
IsSyncWithBackup データベースは、パブリッシュされたデータベースかディストリビューション データベースです。また、トランザクション レプリケーションを中断せずに復元できます。 1:TRUE

0:FALSE

NULL: 無効な入力

基本データ型: int
IsTornPageDetectionEnabled SQL Server データベース エンジンは、電源障害やその他のシステムの停止によって発生した不完全な I/O 操作を検出します。 1:TRUE

0:FALSE

NULL: 無効な入力

基本データ型: int
IsVerifiedClone データベースは、DBCC CLONEDATABASE の WITH VERIFY_CLONEDB オプションで作成されたユーザー データベースをスキーマと統計のみで複製したものです。 詳細については、Microsoft サポート技術情報をご覧ください。 適用対象:SQL Server 2016 (13.x) SP2 で始まる。



1:TRUE

0:FALSE

NULL: 無効な入力

基本データ型: int
IsXTPSupported データベースで In-Memory OLTP がサポートされるか示します。 たとえば、メモリ最適化テーブルやネイティブでコンパイルされるモジュールの作成と使用。

SQL Server に固有:

IsXTPSupported は、インメモリ OLTP オブジェクトを作成するために必要な MEMORY_OPTIMIZED_DATA ファイル グループの存在に依存しません。
適用対象: SQL Server (SQL Server 2016 (13.x) 以降)、Azure SQL データベース。

1:TRUE

0:FALSE

NULL: 無効な入力、エラー、または該当なし

基本データ型: int
LastGoodCheckDbTime 指定されたデータベース上で実行され、最後に成功した DBCC CHECKDB の日時。1 DBCC CHECKDB がデータベース上で実行されていない場合は、1900-01-01 00:00:00.000 が返されます。 適用対象: SQL SERVER 2016 (13.x) SP2 以降。
SQL Server 2017 (14.x) は CU9 以降です。
SQL Server 2019 (15.x) 以降。
Azure SQL Database。

datetime 値

NULL: 無効な入力

基本データ型: datetime
LCID 照合順序の Windows ロケール識別子 (LCID)。 LCID 値 (10 進数形式)。

基本データ型: int
MaxSizeInBytes 最大データベース サイズ (バイト単位)。 適用対象: Azure SQL データベース、Azure Synapse Analytics。

Azure SQL Database と Azure Synapse Analytics – 追加のストレージを購入しない限り、値は SLO に基づきます。

vCore – 値は最大サイズまで 1GB 単位で増分されます。

NULL: データベースは開始されていません。

基本データ型: bigint
Recovery データベース復旧モデル FULL: 完全復旧モデル

BULK_LOGGED: 一括ログ モデル

SIMPLE: 単純復旧モデル

基本データ型: nvarchar(128)
ServiceObjective SQL Database または Azure Synapse Analytics のデータベースのパフォーマンス レベルについて説明します。 次のいずれかの値です。

Null: データベースが開始されていません

Shared (Web/Business エディション向け)

Basic

S0

S1

S2

S3

P1

P2

P3

ElasticPool

System (マスター DB 向け)

基本データ型: nvarchar(32)
ServiceObjectiveId SQL Database のサービス目標の ID です。 サービス目標を識別する uniqueidentifier
SQLSortOrder 以前のバージョンの SQL Server でサポートされている SQL Server 並べ替え順 ID です。 0:データベースが Windows 照合順序を使用します

>0: SQL Server 並べ替え順 ID

NULL: 無効な入力、またはデータベースが開始していません

基本データ型: tinyint
Status データベースの状態です。 ONLINE: データベースをクエリに使用できます。

注: この関数は、データベースが ONLINE で、まだ復旧されていない間は、オンラインの状態を返すことがあります。 ONLINE のデータベースが接続を受け入れることができるかどうかを特定するには、DATABASEPROPERTYEX の Collation プロパティをクエリします。 ONLINE のデータベースは、データベースの照合順序から NULL 以外の値が返されたときに接続を受け入れることができます。 AlwaysOn データベースの場合、sys.dm_hadr_database_replica_states の database_state または database_state_desc 列にクエリを実行します。

OFFLINE: データベースが明示的にオフラインになりました。

RESTORING: データベース復旧が開始しています。

RECOVERING: データベース復旧が開始したところで、データベースはまだクエリに対応していません。

SUSPECT: データベースは復旧されませんでした。

EMERGENCY: データベースは読み取り専用の緊急モードです。 sysadmin メンバーのみにアクセスが制限されます。

基本データ型: nvarchar(128)
Updateability データを変更できるかどうかを示します。 READ_ONLY: データベースでは、データを読み取れますが、修正できません。

READ_WRITE: データベースでは、データを読み取れ、修正できます。

基本データ型: nvarchar(128)
UserAccess データベースにアクセスできるユーザーを示します。 SINGLE_USER: db_owner、dbcreator、sysadmin ユーザーが一度に 1 人だけとなります。

RESTRICTED_USER: db_owner、dbcreator、または sysadmin ロールのメンバーのみ。

MULTI_USER: すべてのユーザー

基本データ型: nvarchar(128)
Version このデータベースが作成された SQL Server コードの内部バージョン番号です。 単に情報を示すためだけに特定されます。 サポートされていません。 将来の互換性は保証されません。 バージョン番号: データベースが開いています。

NULL: データベースは開始されていません。

基本データ型: int
ReplicaID 接続されているハイパースケール データベースまたはレプリカのレプリカ ID。 適用対象: Azure SQL データベース

接続されているハイパースケール データベースまたはレプリカのレプリカ ID のみを返します。 レプリカの種類の詳細については、「Hyperscale セカンダリ レプリカ」を参照してください。

NULL: ハイパースケール データベースではないか、データベースが起動されていません。

基本データ型: nvarchar(128)

注意

1 可用性グループの一部であるデータベースの場合、コマンドを実行するレプリカに関係なく、LastGoodCheckDbTime は、プライマリ レプリカ上で実行され、最後に成功した DBCC CHECKDB の日時を返します。

戻り値の型

sql_variant

例外

エラーが発生した場合、または呼び出し元にオブジェクトの表示権限がない場合は、NULL が返されます。

SQL Server では、そのユーザーが所有している、または権限を与えられている、セキュリティ保護可能なアイテムのメタデータのみを表示できます。 このルールは、オブジェクトに対する権限がユーザーに与えられていない場合、OBJECT_ID のような、メタデータを生成する組み込み関数によって NULL が返されることがあることを意味します。 詳細については、「メタデータ表示の構成」を参照してください。

解説

DATABASEPROPERTYEX は、プロパティ設定を一度に 1 つだけ返します。 表示するには複数のプロパティの設定を使用して、 sys.databases カタログ ビューです。

A. AUTO_SHRINK データベース オプションの設定値を取得する

この例では、AdventureWorks データベースの AUTO_SHRINK データベース オプションのステータスを返します。

SELECT DATABASEPROPERTYEX('AdventureWorks2022', 'IsAutoShrink');  

結果セットは次のようになります。 この結果セットは、AUTO_SHRINK がオフであることを示しています。

------------------  
0  

B. データベースの既定の照合順序を取得する

この例は、AdventureWorks データベースのいくつかの属性を返します。

SELECT   
    DATABASEPROPERTYEX('AdventureWorks2022', 'Collation') AS Collation,  
    DATABASEPROPERTYEX('AdventureWorks2022', 'Edition') AS Edition,  
    DATABASEPROPERTYEX('AdventureWorks2022', 'ServiceObjective') AS ServiceObjective,  
    DATABASEPROPERTYEX('AdventureWorks2022', 'MaxSizeInBytes') AS MaxSizeInBytes  

結果セットは次のようになります。

Collation                     Edition        ServiceObjective  MaxSizeInBytes  
----------------------------  -------------  ----------------  --------------  
SQL_Latin1_General_CP1_CI_AS  DataWarehouse  DW1000            5368709120  

C. DATABASEPROPERTYEX を使用し、レプリカへの接続を検証する

Azure SQL Database のスケールアウト読み取り機能を使用するとき、Azure SQL Database をデータベースのコンテキストで次のクエリを実行することにより、読み取り専用レプリカに接続しているかどうかを確認できます。 読み取り専用レプリカに接続している場合は、READ_ONLY が返されます。 この方法により、読み取り専用レプリカでクエリが実行されているタイミングも特定できます。

SELECT DATABASEPROPERTYEX(DB_NAME(), 'Updateability'); 

関連項目

ALTER DATABASE (Transact-SQL)
データベースの状態
sys.databases (Transact-SQL)
sys.database_files (Transact-SQL)
SERVERPROPERTY (Transact-SQL)