DATABASEPROPERTYEX (Transact-SQL)
適用対象: SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL Server の指定データベースについては、指定のデータベース オプションまたはプロパティの現在の設定がこの関数によって返されます。
構文
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)