sys.databases (Transact-SQL)

Microsoft SQL Server のインスタンスまたは Windows Azure SQL データベース サーバーに、データベースごとに 1 行のデータを保持します。

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

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

列名

データ型

説明

name

sysname

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

database_id

int

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

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 および Windows Azure SQL データベース

100

SQL Server 2008 から SQL Server 2012 および Windows Azure SQL データベース

110

SQL Server 2012

NULL

SQL Server 2008 から SQL Server 2012 および Windows Azure SQL データベース

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

collation_name

sysname

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

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

user_access

tinyint

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

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

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

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

user_access_desc

nvarchar(60)

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

MULTI_USER

SINGLE_USER

RESTRICTED_USER

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

3 = RECOVERY_PENDING

4 = SUSPECT

5 = EMERGENCY

6 = OFFLINE

7 = COPYING (Windows Azure SQL データベースに適用)

Windows Azure SQL データベースは、0、1、4、7 の状態を返します。

注意

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

詳細については、「データベースの状態」を参照してください。

state_desc

nvarchar(60)

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

  • ONLINE

  • RESTORING

  • RECOVERING

  • RECOVERY_PENDING

  • SUSPECT

    SQL データベース の場合、SUSPECT = copy プロセスが失敗しました。

  • EMERGENCY

  • OFFLINE

  • COPYING

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 オプションで設定された、許可されているスナップショット分離トランザクションの状態の説明です。

  • OFF

  • ON

  • IN_TRANSITION_TO_ON

  • IN_TRANSITION_TO_OFF

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)

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

  • FULL

  • BULK_LOGGED

  • SIMPLE

page_verify_option

tinyint

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

0 = NONE

1 = TORN_PAGE_DETECTION

2 = CHECKSUM

page_verify_option_desc

nvarchar(60)

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

NONE

TORN_PAGE_DETECTION

CHECKSUM

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 = チェックポイント

2 = ログのバックアップ

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

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

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

6 = レプリケーション

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

8 = ログのスキャン

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

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

10 = 内部使用のみ

11 = 内部使用のみ

12 = 内部使用のみ

13 = 最古のページ

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

14 = その他 (一時的)

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

log_reuse_wait_desc

nvarchar(60)

現在待機中の、トランザクション ログ領域の再利用の理由の説明です。

  • NOTHING

  • CHECKPOINT

  • LOG_BACKUP

    注意

    理由が LOG_BACKUP である場合、実際に領域を解放するのに 2 つのバックアップを取ることがあります。

  • ACTIVE_BACKUP_OR_RESTORE

  • ACTIVE_TRANSACTION

  • DATABASE_MIRRORING

  • REPLICATION

  • DATABASE_SNAPSHOT_CREATION

  • LOG_SCAN

  • AVAILABILITY_REPLICA

    注意

    ログの切り捨てが遅れる原因となっているセカンダリ データベースを特定するには、sys.dm_hadr_database_replica_states 動的管理ビューの truncation_lsn 列を参照してください。

  • 内部使用のみ

  • 内部使用のみ

  • 内部使用のみ

  • OLDEST_PAGE

  • OTHER_TRANSIENT

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 2012 および SQL データベース。

group_database_id

uniqueidentifier

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

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

適用対象: SQL Server 2012 から SQL Server 2012 および SQL データベース。

default_language_lcid

smallint

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

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

適用対象: SQL Server 2012 から SQL Server 2012 および SQL データベース。

default_language_name

nvarchar(128)

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

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

default_fulltext_language_lcid

int

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

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

適用対象: SQL Server 2012 から SQL Server 2012 および SQL データベース。

default_fulltext_language_name

nvarchar(128)

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

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

適用対象: SQL Server 2012 から SQL Server 2012 および SQL データベース。

is_nested_triggers_on

ビット

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

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

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

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

適用対象: SQL Server 2012 から SQL Server 2012 および SQL データベース。

is_transform_noise_words_on

ビット

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

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

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

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

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

two_digit_year_cutoff

smallint

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

適用対象: SQL Server 2012 から SQL Server 2012 および SQL データベース。

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

containment

tinyint not null

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

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

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

適用対象: SQL Server 2012 から SQL Server 2012 および SQL データベース。

containment_desc

nvarchar(60) not null

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

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

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

適用対象: SQL Server 2012 から SQL Server 2012 および SQL データベース。

target_recovery_time_in_seconds

int

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

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

is_federation_member

bit

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

適用対象: Windows Azure SQL データベース

権限

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

Windows Azure SQL データベース 解説

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

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

使用例

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

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

適用対象: SQL Server 2008 から SQL Server 2012 および Windows Azure SQL データベース。

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

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

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

適用対象: Windows Azure SQL データベース

-- 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