共用方式為


sys.databases (Transact-SQL)

針對 SQL Server 執行個體中的每個資料庫,各包含一個資料列。

適用於:SQL Server (SQL Server 2008 到目前的版本)、Azure SQL Database。

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

**與適用於 SQL 資料庫 之 使用中的地理複寫 相關的資料行:**is_ready_only、state 以及 state_desc。

資料行名稱

資料類型

描述

name

sysname

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

database_id

int

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

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

100

SQL Server 2008 至 SQL Server 2014 以及 Azure SQL Database

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

10 = OFFLINE_SECONDARY

Azure SQL Database

注意

剛上線的資料庫不一定馬上能接受連接。若要識別資料庫可接受連接的時間,請查詢 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 狀態。 所有的交易都把自己的修改版本化了。 新交易無法利用快照集隔離加以啟動。 資料庫仍然保持在轉移為 OFF 狀態的過渡時期,必須等到在執行 ALTER DATABASE 時,所有使用中的交易可以完成為止。

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

snapshot_isolation_state_desc

nvarchar(60)

允許進行的快照集隔離交易狀態的描述,由 ALLOW_SNAPSHOT_ISOLATION 選項設定。

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)

所選之復原模式的描述。

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

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

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

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

group_database_id

uniqueidentifier

資料庫正參與之 AlwaysOn 可用性群組 (如果有) 內資料庫的唯一識別碼。 對於主要複本上和資料庫已加入可用性群組的每個次要複本上的這個資料庫,group_database_id 都是相同的。

NULL = 資料庫不是任何可用性群組中可用性複本的一部分。

適用於:SQL Server 2012 至 SQL Server 2014、Azure SQL Database

default_language_lcid

smallint

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

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

適用於:SQL Server 2012 至 SQL Server 2014、Azure SQL Database

default_language_name

nvarchar(128)

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

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

適用於:SQL Server 2012 至 SQL Server 2014、Azure SQL Database

default_fulltext_language_lcid

int

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

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

適用於:SQL Server 2012 至 SQL Server 2014、Azure SQL Database

default_fulltext_language_name

nvarchar(128)

表示自主資料庫的預設全文檢索語言。

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

適用於:SQL Server 2012 至 SQL Server 2014、Azure SQL Database

is_nested_triggers_on

bit

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

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

1 = 允許巢狀觸發程序。

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

適用於:SQL Server 2012 至 SQL Server 2014、Azure SQL Database

is_transform_noise_words_on

bit

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

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

1 = 應該轉換非搜尋字。

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

適用於:SQL Server 2012 至SQL Server 2014

two_digit_year_cutoff

smallint

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

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

適用於:SQL Server 2012 至 SQL Server 2014、Azure SQL Database

containment

tinyint not null

指示資料庫的內含項目狀態。

適用於

0 = 資料庫內含項目已關閉。

SQL Server 2012 至 SQL Server 2014、Azure SQL Database

1 = 資料庫內含項目是部分

SQL Server 2012 至SQL Server 2014

containment_desc

nvarchar(60) not null

指示資料庫的內含項目狀態。

NONE = 舊版資料庫 (零個內含項目)

PARTIAL = 部分自主資料庫

適用於:SQL Server 2012 至 SQL Server 2014、Azure SQL Database

target_recovery_time_in_seconds

int

復原資料庫的預估時間 (以秒為單位)。 可為 Null。

適用於:SQL Server 2012 至 SQL Server 2014、Azure SQL Database

is_federation_member

bit

表示資料庫是否為同盟的成員。

適用於:Azure SQL Database

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 = 自動建立非累加的統計資料

1 = 盡可能自動建立累加的統計資料

適用於:SQL Server 2014 到 SQL Server 2014。

is_query_store_on

bit

僅供內部使用。

適用於:SQL Server 2014 到 SQL Server 2014。

resource_pool_id

int

對應到這個資料庫之資源集區的識別碼。 這個資源集區會控制可供這個資料庫中記憶體最佳化資料表使用的記憶體總量。

適用於:SQL Server 2014 至SQL Server 2014

Permissions

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

SQL 資料庫備註

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

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

適用於: Azure SQL Database

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