sys.databases (Transact-SQL)

包含 Microsoft SQL Server 或 Windows Azure SQL 資料庫 伺服器的執行個體中每個資料庫各一個資料列。

適用於:SQL Server (SQL Server 2008 透過目前版本)、Windows Azure SQL 資料庫 (初始版本,透過目前版本)。

如果資料庫不在線上,或者 AUTO_CLOSE 設為 ON 且資料庫已關閉,則某些資料行的值可能是 NULL。 如果資料庫是離線狀態,則低權限的使用者就看不到對應的資料列了。 如果資料庫在離線狀態時,使用者要查看對應的資料列,至少必須具備 ALTER ANY DATABASE 伺服器層級權限或 master 資料庫中的 CREATE DATABASE 權限。

資料行名稱

資料類型

描述

名稱

sysname

資料庫的名稱,在 SQL Server 執行個體或 Windows Azure SQL 資料庫 伺服器內是唯一的。

database_id

int

資料庫的識別碼,在 SQL Server 執行個體或 Windows Azure SQL 資料庫 伺服器內是唯一的。

source_database_id

int

Non-NULL = 這個資料庫快照集的來源資料庫識別碼。

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 = 複製程序失敗。

  • 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 狀態。 所有的交易都把自己的修改版本化了。 新交易無法利用快照集隔離加以啟動。 資料庫仍然保持在轉移為 OFF 狀態的過渡時期,必須等到在執行 ALTER DATABASE 時,所有使用中的交易可以完成為止。

3 = 快照集隔離狀態正轉移為 ON 狀態。 新交易都把自己的修改版本化了。 除非快照集隔離狀態變成 1 (ON),否則交易無法使用快照集隔離。 資料庫仍然保持在轉移為 ON 狀態的過渡時期,必須等到在執行 ALTER DATABASE 時,所有使用中的更新交易可以完成為止。

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。 在讀取認可隔離等級下的讀取作業,是以快照集掃描為基礎,沒有取得鎖定。

0 = READ_COMMITTED_SNAPSHOT 選項為 OFF (預設)。 在讀取認可隔離等級下的讀取作業,是使用共用鎖定。

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 = 這個資料庫中的 Broker,目前正在收送訊息。

0 = 所有傳送的訊息,都會停留在傳輸佇列中,而收到的訊息並不會置於這個資料庫的佇列中。

依預設,還原或附加的資料庫都會停用 Broker。 但資料庫鏡像例外,它會在容錯移轉之後啟用 Broker。

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,可能會利用兩個備份,實際清出空間。

  • 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

表示自主資料庫預設語言的地區設定識別碼 (LCID)。

注意:當做 sp_configure 的設定 default language 伺服器組態選項使用。 如果是非自主資料庫,這個值是 null。

適用於:SQL Server 2012 至 SQL Server 2012 以及 SQL 資料庫。

default_language_name

nvarchar(128)

表示自主資料庫的預設語言。

如果是非自主資料庫,這個值是 null。

default_fulltext_language_lcid

int

表示自主資料庫預設全文檢索語言的地區設定識別碼 (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

bit

指出自主資料庫是否允許巢狀觸發程序。

0 = 不允許巢狀觸發程序。

1 = 允許巢狀觸發程序。

注意:當做 sp_configure 的設定 nested triggers 伺服器組態選項使用。 如果是非自主資料庫,這個值是 null。 如需詳細資訊,請參閱<sys.configurations (Transact-SQL)>。

適用於:SQL Server 2012 至 SQL Server 2012 以及 SQL 資料庫。

is_transform_noise_words_on

bit

指出自主資料庫中是否應該轉換非搜尋字。

0 = 不應該轉換非搜尋字。

1 = 應該轉換非搜尋字。

適用於:SQL Server 2012 至 SQL Server 2012。

注意:當做 sp_configure 的轉換非搜尋字伺服器組態選項使用。 如果是非自主資料庫,這個值是 null。 如需詳細資訊,請參閱<sys.configurations (Transact-SQL)>。

two_digit_year_cutoff

smallint

表示 1753 與 9999 之間的數目,代表將二位數年份解譯為四位數年份時的截斷年份 (Cutoff Year)。

適用於: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 的呼叫端不是資料庫的擁有者,而且該資料庫不是 mastertempdb,那麼要查看對應資料列所需具備的最低權限,就是 ALTER ANY DATABASE 或 VIEW ANY DATABASE 伺服器層級權限,或是 master 資料庫中的 CREATE DATABASE 權限。 呼叫端所連接的資料庫,永遠可以在 sys.databases 中進行檢視。

Windows Azure SQL 資料庫 備註

在 Windows Azure SQL 資料庫 中,這個檢視可在 master 資料庫與使用者資料庫中使用。 在 master 資料庫中,這個檢視會傳回有關伺服器上 master 資料庫和所有使用者資料庫的資訊。 在使用者資料庫中,這個檢視只會傳回有關目前資料庫和 master 資料庫的資訊。

使用建立新資料庫所在 Windows Azure SQL 資料庫 伺服器上 master 資料庫中的 sys.databases 檢視。 在資料庫副本啟動之後,您可以從目的地伺服器的 master 資料庫查詢 sys.databasessys.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.databasessys.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