次の方法で共有


sys.databases (Transact-SQL)

SQL Server のインスタンスに、データベースごとに 1 行のデータを保持します。

適用対象: SQL Server (SQL Server 2008 から現在のバージョンまで)、Azure AQL データベース (初回のリリースから現在のバージョンまで)

データベースが ONLINE ではない場合、または AUTO_CLOSE が ON に設定されていて、データベースが閉じられている場合、いくつかの列の値が NULL になる可能性があります。 データベースが OFFLINE である場合、対応する行は権限の低いユーザーに対して表示されません。 データベースが OFFLINE の場合に対応する行を表示するには、ユーザーは少なくとも、master データベースで ALTER ANY DATABASE のサーバーレベルの権限、または CREATE DATABASE 権限を持っている必要があります。

SQL データベース でアクティブな地理的レプリケーションに関連する列: is_ready_only、state、state_desc

列名

データ型

説明

name

sysname

SQL Server のインスタンス内、または Azure AQL データベース サーバー内で一意な、データベースの名前。

database_id

int

SQL Server のインスタンス内、または Azure AQL データベース サーバー内で一意な、データベースの識別子。

source_database_id

int

NULL 以外 = このデータベース スナップショットのソース データベースの ID です。

NULL = データベース スナップショットではありません。

owner_sid

varbinary(85)

サーバーに登録したデータベースの外部所有者の SID (セキュリティ識別子) です。

create_date

datetime

データベースの作成または名前の変更を行った日付です。 tempdb では、この値はサーバーが再起動されるたびに変わります。

compatibility_level

tinyint

動作に互換性のある SQL Server のバージョンに対応する整数です。

適用対象

70

SQL Server 2008 から SQL Server 2008 R2

80

SQL Server 2008 から SQL Server 2008 R2

90

SQL Server 2008 から SQL Server 2012

100

SQL Server 2008 から SQL Server 2014 および Azure AQL データベース

110

SQL Server 2012 から SQL Server 2014

120

SQL Server 2014 から SQL Server 2014

NULL

collation_name

sysname

データベースの照合順序です。 データベースの既定の照合順序として機能します。

NULL = データベースがオンラインではありません。または、AUTO_CLOSE が ON に設定されていて、データベースが閉じられています。

user_access

tinyint

ユーザー アクセス設定です。

0 = MULTI_USER が指定されています。

1 = SINGLE_USER が指定されています。

2 = RESTRICTED_USER が指定されています。

user_access_desc

nvarchar(60)

ユーザー アクセス設定の説明です。

is_read_only

bit

1 = データベースは READ_ONLY です。

0 = データベースは READ_WRITE です。

is_auto_close_on

bit

1 = AUTO_CLOSE は ON です。

0 = AUTO_CLOSE は OFF です。

is_auto_shrink_on

bit

1 = AUTO_SHRINK は ON です。

0 = AUTO_SHRINK は OFF です。

state

tinyint

適用対象

0 = ONLINE

1 = RESTORING

2 = RECOVERING

SQL Server 2008 から SQL Server 2014

3 = RECOVERY_PENDING

SQL Server 2008 から SQL Server 2014

4 = SUSPECT

5 = EMERGENCY

SQL Server 2008 から SQL Server 2014

6 = OFFLINE

SQL Server 2008 から SQL Server 2014

7 = COPYING

Azure AQL データベース

注意

オンラインになったばかりのデータベースは、接続を受け入れる準備ができているとは限りません。データベースがいつ接続を受け入れることができるかを特定するには、sys.databases の collation_name 列または DATABASEPROPERTYEX の Collation プロパティのクエリを実行します。データベースは、データベースの照合順序から NULL 以外の値が返されたときに接続を受け入れることができます。AlwaysOn データベースの場合は、sys.dm_hadr_database_replica_states の database_state 列または database_state_desc 列のクエリを実行します。

state_desc

nvarchar(60)

データベースの状態の説明です。

is_in_standby

bit

データベースは、復元ログに対し、読み取り専用です。

is_cleanly_shutdown

bit

1 = データベースはクリーンにシャットダウンされ、起動時に復旧処理は必要ありません。

0 = データベースはクリーンにシャットダウンされなかったため、起動時に復旧処理が必要です。

is_supplemental_logging_enabled

bit

1 = SUPPLEMENTAL_LOGGING は ON です。

0 = SUPPLEMENTAL_LOGGING は OFF です。

snapshot_isolation_state

tinyint

ALLOW_SNAPSHOT_ISOLATION オプションで設定された、許可されているスナップショット分離トランザクションの状態です。

0 = スナップショット分離の状態は OFF です (既定)。 スナップショット分離は許可されていません。

1 = スナップショット分離の状態は ON です。 スナップショット分離は許可されています。

2 = スナップショット分離の状態は OFF に移行中です。 すべてのトランザクションで、その変更がバージョン管理されます。 スナップショット分離を使用して新しいトランザクションを開始することはできません。 ALTER DATABASE が実行されたときにアクティブだったすべてのトランザクションが完了するまで、データベースは OFF に移行中の状態となります。

3 = スナップショット分離の状態は ON に移行中です。 新しいトランザクションで、その変更がバージョン管理されます。 スナップショット分離の状態が 1 (ON) になるまで、トランザクションではスナップショット分離を使用できません。 ALTER DATABASE が実行されたときにアクティブだったすべての更新トランザクションが完了するまで、データベースは ON に移行中の状態となります。

snapshot_isolation_state_desc

nvarchar(60)

ALLOW_SNAPSHOT_ISOLATION オプションで設定された、許可されているスナップショット分離トランザクションの状態の説明です。

is_read_committed_snapshot_on

bit

1 = READ_COMMITTED_SNAPSHOT オプションは ON です。 READ COMMITTED 分離レベルでの読み取り操作は、スナップショット スキャンに基づいており、ロックを取得しません。

0 = READ_COMMITTED_SNAPSHOT オプションは OFF です (既定)。 READ COMMITTED 分離レベルでの読み取り操作は、共有ロックを使用します。

recovery_model

tinyint

選択される復旧モデルです。

1 = FULL

2 = BULK_LOGGED

3 = SIMPLE

recovery_model_desc

nvarchar(60)

選択される復旧モデルの説明です。

page_verify_option

tinyint

PAGE_VERIFY オプションの設定です。

0 = NONE

1 = TORN_PAGE_DETECTION

2 = CHECKSUM

page_verify_option_desc

nvarchar(60)

PAGE_VERIFY オプション設定の説明です。

is_auto_create_stats_on

bit

1 = AUTO_CREATE_STATISTICS は ON です。

0 = AUTO_CREATE_STATISTICS は OFF です。

is_auto_update_stats_on

bit

1 = AUTO_UPDATE_STATISTICS は ON です。

0 = AUTO_UPDATE_STATISTICS は OFF です。

is_auto_update_stats_async_on

bit

1 = AUTO_UPDATE_STATISTICS_ASYNC は ON です。

0 = AUTO_UPDATE_STATISTICS_ASYNC は OFF です。

is_ansi_null_default_on

bit

1 = ANSI_NULL_DEFAULT は ON です。

0 = ANSI_NULL_DEFAULT は OFF です。

is_ansi_nulls_on

bit

1 = ANSI_NULLS は ON です。

0 = ANSI_NULLS は OFF です。

is_ansi_padding_on

bit

1 = ANSI_PADDING は ON です。

0 = ANSI_PADDING は OFF です。

is_ansi_warnings_on

bit

1 = ANSI_WARNINGS は ON です。

0 = ANSI_WARNINGS は OFF です。

is_arithabort_on

bit

1 = ARITHABORT は ON です。

0 = ARITHABORT は OFF です。

is_concat_null_yields_null_on

bit

1 = CONCAT_NULL_YIELDS_NULL は ON です。

0 = CONCAT_NULL_YIELDS_NULL は OFF です。

is_numeric_roundabort_on

bit

1 = NUMERIC_ROUNDABORT は ON です。

0 = NUMERIC_ROUNDABORT は OFF です。

is_quoted_identifier_on

bit

1 = QUOTED_IDENTIFIER は ON です。

0 = QUOTED_IDENTIFIER は OFF です。

is_recursive_triggers_on

bit

1 = RECURSIVE_TRIGGERS は ON です。

0 = RECURSIVE_TRIGGERS は OFF です。

is_cursor_close_on_commit_on

bit

1 = CURSOR_CLOSE_ON_COMMIT は ON です。

0 = CURSOR_CLOSE_ON_COMMIT は OFF です。

is_local_cursor_default

bit

1 = CURSOR_DEFAULT はローカルです。

0 = CURSOR_DEFAULT はグローバルです。

is_fulltext_enabled

bit

1 = データベースに対してフルテキストが有効です。

0 = データベースに対してフルテキストが無効です。

is_trustworthy_on

bit

1 = データベースは信頼できるものとしてマークされています。

0 = データベースは信頼できるものとしてマークされていません。

is_db_chaining_on

bit

1 = 複数データベースの組み合わせ所有権は ON です。

0 = 複数データベースの組み合わせ所有権は OFF です。

is_parameterization_forced

bit

1 = パラメーター化は FORCED です。

0 = パラメーター化は SIMPLE です。

is_master_key_encrypted_by_server

bit

1 = データベースは暗号化されたマスター キーを保有しています。

0 = データベースは暗号化されたマスター キーを保有していません。

is_published

bit

1 = データベースは、トランザクション レプリケーション トポロジまたはスナップショット レプリケーション トポロジにおけるパブリケーション データベースです。

0 = パブリケーション データベースではありません。

is_subscribed

bit

この列は使用されません。 データベースのサブスクライバーの状態に関係なく、常に 0 を返します。

is_merge_published

bit

1 = データベースは、マージ レプリケーション トポロジにおけるパブリケーション データベースです。

0 = マージ レプリケーション トポロジにおけるパブリケーション データベースではありません。

is_distributor

bit

1 = データベースは、レプリケーション トポロジにおけるディストリビューション データベースです。

0 = レプリケーション トポロジにおけるディストリビューション データベースではありません。

is_sync_with_backup

bit

1 = データベースはバックアップとのレプリケーション同期用に設定されています。

0 = バックアップとのレプリケーション同期用に設定されていません。

service_broker_guid

uniqueidentifier

このデータベースの Service Broker の識別子です。 ルーティング テーブルでターゲットの broker_instance として使用されます。

is_broker_enabled

bit

1 = このデータベースのブローカーは現在メッセージを送受信中です。

0 = このデータベースでは、すべての送信メッセージは転送キューにとどまり、受信メッセージはキューに配置されません。

既定では、復元されたデータベースまたはアタッチされたデータベースでは、ブローカーは無効になります。 ただし、フェールオーバー後にブローカーが有効になるデータベース ミラーリングは例外です。

log_reuse_wait

tinyint

前回のチェックポイントの時点で、トランザクション ログ領域の再利用は、次のいずれかで現在待機中です。

適用対象

0 = なし

1 = チェックポイント (データベースが復旧モデルを使用しており、メモリ最適化データ ファイル グループを保持している場合、log_reuse_wait 列がチェックポイントまたは xtp_checkpoint を示す可能性があります)。

SQL Server 2008 から SQL Server 2014

2 = ログのバックアップ

SQL Server 2008 から SQL Server 2014

3 = アクティブなバックアップまたは復元

SQL Server 2008 から SQL Server 2014

4 = アクティブなトランザクション

SQL Server 2008 から SQL Server 2014

5 = データベース ミラーリング

SQL Server 2008 から SQL Server 2014

6 = レプリケーション

SQL Server 2008 から SQL Server 2014

7 = データベース スナップショットの作成

SQL Server 2008 から SQL Server 2014

8 = ログのスキャン

9 = AlwaysOn 可用性グループのセカンダリ レプリカが、このデータベースのトランザクション ログ レコードを対応するセカンダリ データベースに適用中である

SQL Server 2012 から SQL Server 2014。 以前のバージョンの SQL Server では、9 = その他 (一時的)。

10 = 内部使用のみ

SQL Server 2012 から SQL Server 2014

11 = 内部使用のみ

SQL Server 2012 から SQL Server 2014

12 = 内部使用のみ

SQL Server 2012 から SQL Server 2014

13 = 最古のページ

SQL Server 2012 から SQL Server 2014

14 = その他

SQL Server 2012 から SQL Server 2014

16 = XTP_CHECKPOINT (データベースが復旧モデルを使用しており、メモリ最適化データ ファイル グループを保持している場合、log_reuse_wait 列がチェックポイントまたは xtp_checkpoint を示す可能性があります)。

SQL Server 2014 から SQL Server 2014

log_reuse_wait_desc

nvarchar(60)

前回のチェックポイントの時点で現在待機中の、トランザクション ログ領域の再利用の理由の説明です。

is_date_correlation_on

bit

1 = DATE_CORRELATION_OPTIMIZATION は ON です。

0 = DATE_CORRELATION_OPTIMIZATION は OFF です。

is_cdc_enabled

bit

1 = データベースで変更データ キャプチャが有効になっています。 詳細については、「sys.sp_cdc_enable_db (Transact-SQL)」を参照してください。

is_encrypted

bit

データベースが暗号化されているかどうかを示します (ALTER DATABASE SET ENCRYPTION 句を使用して最後に設定された状態を表します)。 次の値のいずれかです。

1 = 暗号化されている

0 = 暗号化されていない

データベースの暗号化の詳細については、「透過的なデータ暗号化 (TDE)」を参照してください。

データベースで暗号化解除の処理が実行中の場合は、is_encrypted の値は 0 を示します。 暗号化処理の状態を確認するには、sys.dm_database_encryption_keys 動的管理ビューを使用します。

is_honor_broker_priority_on

bit

データベースでメッセージ交換の優先度が適用されるかどうかを示します (ALTER DATABASE SET HONOR_BROKER_PRIORITY 句を使用して最後に設定された状態を表します)。 次の値のいずれかです。

1 = HONOR_BROKER_PRIORITY は ON です。

0 = HONOR_BROKER_PRIORITY は OFF です。

replica_id

uniqueidentifier

データベースが参加している可用性グループ (存在する場合) のローカル AlwaysOn 可用性グループ 可用性レプリカの一意の識別子です。

NULL = データベースは可用性グループの可用性レプリカの一部ではありません。

適用対象: SQL Server 2012 から SQL Server 2014、Azure AQL データベース

group_database_id

uniqueidentifier

データベースが参加している AlwaysOn 可用性グループ (存在する場合) 内のデータベースの一意の識別子です。 group_database_id は、プライマリ レプリカのこのデータベースのものと、データベースが可用性グループに参加しているすべてのセカンダリ レプリカのこのデータベースのもので同じです。

NULL = データベースは、どの可用性グループの可用性レプリカの一部でもありません。

適用対象: SQL Server 2012 から SQL Server 2014、Azure AQL データベース

default_language_lcid

smallint

包含データベースの既定の言語のローカル ID (LCID) を示します。

メモ   sp_configure の default language サーバー構成オプションの構成 として機能します。 非包含データベースの場合、この値は null です。

適用対象: SQL Server 2012 から SQL Server 2014、Azure AQL データベース

default_language_name

nvarchar(128)

包含データベースの既定の言語を示します。

非包含データベースの場合、この値は null です。

適用対象: SQL Server 2012 から SQL Server 2014、Azure AQL データベース

default_fulltext_language_lcid

int

包含データベースの既定のフルテキスト言語のローカル ID (LCID) を示します。

メモ   sp_configure の既定の default full-text language サーバー構成オプションの構成 として機能します。 非包含データベースの場合、この値は null です。

適用対象: SQL Server 2012 から SQL Server 2014、Azure AQL データベース

default_fulltext_language_name

nvarchar(128)

包含データベースの既定のフルテキスト言語を示します。

非包含データベースの場合、この値は null です。

適用対象: SQL Server 2012 から SQL Server 2014、Azure AQL データベース

is_nested_triggers_on

bit

包含データベースで入れ子になったトリガーが許可されるかどうかを示します。

0 = 入れ子になったトリガーは許可されません。

1 = 入れ子になったトリガーは許可されます。

メモ   sp_configure の nested triggers サーバー構成オプションの構成 として機能します。 非包含データベースの場合、この値は null です。 詳細については、「sys.configurations (Transact-SQL)」を参照してください。

適用対象: SQL Server 2012 から SQL Server 2014、Azure AQL データベース

is_transform_noise_words_on

bit

包含データベースでノイズ ワードを変換する必要があるかどうかを示します。

0 = ノイズ ワードは変換する必要がありません。

1 = ノイズ ワードは変換する必要があります。

メモ   sp_configure の transform noise words サーバー構成オプション として機能します。 非包含データベースの場合、この値は null です。 詳細については、「sys.configurations (Transact-SQL)」を参照してください。

適用対象: SQL Server 2012 から SQL Server 2014

two_digit_year_cutoff

smallint

2 桁の数字を 4 桁の西暦として解釈する場合の区切りの年を表す 1753 ~ 9999 の範囲の数値を示します。

メモ   sp_configure の two digit year cutoff サーバー構成オプションの構成 として機能します。 非包含データベースの場合、この値は null です。 詳細については、「sys.configurations (Transact-SQL)」を参照してください。

適用対象: SQL Server 2012 から SQL Server 2014、Azure AQL データベース

containment

tinyint not null

データベースの包含状態を示します。

適用対象

0 = データベースの包含がオフ

SQL Server 2012 から SQL Server 2014、Azure AQL データベース

1 = データベースは部分的な包含

SQL Server 2012 から SQL Server 2014

containment_desc

nvarchar(60) not null

データベースの包含状態を示します。

NONE = 従来のデータベース (包含なし)

PARTIAL = 部分的包含データベース

適用対象: SQL Server 2012 から SQL Server 2014、Azure AQL データベース

target_recovery_time_in_seconds

int

データベースの復旧にかかる推定時間 (秒単位) です。 NULL 値は許可されます。

適用対象: SQL Server 2012 から SQL Server 2014、Azure AQL データベース

is_federation_member

bit

データベースがフェデレーションのメンバーであるかどうかを示します。

適用対象: Azure AQL データベース

is_memory_optimized_elevate_to_snapshot_on

bit

適用対象: SQL Server 2014 から SQL Server 2014

セッション設定 TRANSACTION ISOLATION LEVEL が低い分離レベル (READ COMMITTED または READ UNCOMMITTED) に設定されている場合は、SNAPSHOT 分離を使用してメモリ最適化テーブルにアクセスします。

1 = 最小分離レベルは SNAPSHOT です。

0 = 分離レベルは引き上げられません。

is_auto_create_stats_incremental_on

bit

Auto Stats の増分処理オプションの既定の設定を示します。

0 = Auto Stats は増分作成されません。

1 = 可能な場合、Auto Stats は増分作成されます。

適用対象: SQL Server 2014 から SQL Server 2014

is_query_store_on

bit

内部使用のみです。

適用対象: SQL Server 2014 から SQL Server 2014

resource_pool_id

int

このデータベースにマップされているリソース プールの ID。 このリソース プールは、このデータベース内にあるメモリ最適化テーブルで使用できる合計メモリ量を制御します。

適用対象: SQL Server 2014 から SQL Server 2014

[権限]

sys.databases の呼び出し元がデータベースの所有者ではなく、データベースが master でも tempdb でもない場合、対応する行を表示するには、少なくとも master データベースで、ALTER ANY DATABASE または VIEW ANY DATABASE のサーバーレベルの権限、あるいは、CREATE DATABASE の権限が必要です。 呼び出し元が接続しているデータベースは常に sys.databases で確認できます。

SQL データベース 解説

SQL データベースでは、このビューは master データベースとユーザー データベースで使用できます。 master データベースでは、このビューには、サーバーの master データベースとすべてのユーザー データベースの情報が返されます。 ユーザー データベースでは、このビューには、現在のデータベースと master データベースのみの情報が返されます。

新しいデータベースを作成する SQL データベース サーバーの master データベース内の sys.databases ビューを使用します。 データベースのコピー開始後、コピー先サーバーの master データベースに sys.databases および sys.dm_database_copies ビューのクエリを実行して、コピーの進行状況に関する詳細情報を取得できます。

使用例

A. sys.databases ビューに対するクエリ

次の例は、sys.databases ビューで利用できる列のいくつかを返します。

SELECT name, user_access_desc, is_read_only, state_desc, recovery_model_desc
FROM sys.databases;

B. SQL データベース でのコピーの進行状況を確認します。

次の例では、sys.databases および sys.dm_database_copies ビューのクエリを実行し、データベースのコピー操作に関する情報を返します。

適用対象: Azure AQL データベース

-- Execute from the master database.
SELECT a.name, a.state_desc, b.start_date, b.modify_date, b.percentage_complete
FROM sys.databases AS a
INNER JOIN sys.dm_database_copies AS b ON a.database_id = b.database_id
WHERE a.state = 7;

関連項目

参照

ALTER DATABASE (Transact-SQL)

sys.database_mirroring_witnesses (Transact-SQL)

sys.database_recovery_status (Transact-SQL)

データベースとファイルのカタログ ビュー (Transact-SQL)

その他の技術情報

sys.dm_database_copies