共用方式為


DATABASEPROPERTYEX (Transact-SQL)

適用於:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics分析平台系統(PDW)Microsoft Fabric 中的 SQL 資料庫

對於 SQL Server 中指定的資料庫,函式會 DATABASEPROPERTYEX 傳回指定資料庫選項或屬性的目前設定。

Transact-SQL 語法慣例

語法

DATABASEPROPERTYEX ( database , property )

引數

資料庫

指定資料庫 DATABASEPROPERTYEX 名稱的表示式,其傳回具名內容資訊。 database 具有 nvarchar(128) 資料類型。

針對 SQL Database,DATABASEPROPERTYEX 需要目前資料庫的名稱。 如果指定不同的資料庫名稱,它會傳回 NULL 所有屬性。

財產

指定要傳回之資料庫屬性名稱的運算式。 property 具有 varchar(128) 資料類型,並支援此資料表中的其中一個值:

注意

如果資料庫尚未啟動, DATABASEPROPERTYEX 則呼叫 return NULL if DATABASEPROPERTYEX 會透過直接資料庫存取來擷取這些值,而不是從中繼資料擷取。 設定為 AUTO_CLOSE或離線的資料庫ON定義為「未啟動」。

屬性 描述 傳回的值
Collation

資料類型: nvarchar(128)
資料庫的預設定序名稱。 定序名稱。 如果 ,資料庫 NULL未啟動。
ComparisonStyle

資料類型: int
Windows 的定序比較樣式。 使用下列樣式值來建構完成 ComparisonStyle 值的點陣圖:

- 1:忽略大小寫
- 2:忽略口音
- 65536:忽略假名
- 131072:忽略寬度

例如,預設值 是 196609 結合 忽略大小文字忽略假名忽略寬度 選項的結果。
傳回比較樣式。

傳回 0 所有二進位定序。
Edition

資料類型: nvarchar(64)
資料庫版本或服務層。 - General Purpose
- Business Critical
- Basic
- Standard
- Premium
- System (用於 master 資料庫)
- FabricSQLDB:Microsoft Fabric 中的 SQL 資料庫
- NULL:資料庫未啟動。

適用於:Azure SQL 資料庫、Microsoft Fabric 中的 SQL 資料庫、Azure Synapse Analytics。
IsAnsiNullDefault

資料類型: int
資料庫遵循允許 NULL 值的 ISO 規則。 - 1:實
- 0:偽
- NULL:輸入無效
IsAnsiNullsEnabled

資料類型: int
所有與評估的 NULL 比較都未知。 - 1:實
- 0:偽
- NULL:輸入無效
IsAnsiPaddingEnabled

資料類型: int
字串在進行比較或插入處理之前,先填補至相同的長度。 - 1:實
- 0:偽
- NULL:輸入無效
IsAnsiWarningsEnabled

資料類型: int
當發生標準錯誤狀況時,SQL Server 會發出錯誤或警告訊息。 - 1:實
- 0:偽
- NULL:輸入無效
IsArithmeticAbortEnabled

資料類型: int
在查詢執行期間,當發生溢位或除以零的錯誤時,查詢會停止。 - 1:實
- 0:偽
- NULL:輸入無效
IsAutoClose

資料類型: int
在最後一個使用者結束之後,資料庫完整關機並釋出資源。 - 1:實
- 0:偽
- NULL:輸入無效
IsAutoCreateStatistics

資料類型: int
查詢最佳化工具會視需要建立單一資料行統計資料來改善查詢效能。 - 1:實
- 0:偽
- NULL:輸入無效
IsAutoCreateStatisticsIncremental

資料類型: int
自動建立的單一資料行統計資料會累加 (如果可能)。 - 1:實
- 0:偽
- NULL:輸入無效

適用於:SQL Server 2014 (12.x) 和更新版本。
IsAutoShrink

資料類型: int
資料庫檔案是自動定期壓縮的候選項。 - 1:實
- 0:偽
- NULL:輸入無效
IsAutoUpdateStatistics

資料類型: int
當查詢使用可能已過期的現有統計資料時,查詢最佳化工具就會更新這些統計資料。 - 1:實
- 0:偽
- NULL:輸入無效
IsClone

資料類型: int
資料庫是使用 建立 DBCC CLONEDATABASE之使用者資料庫的僅綱目及統計資料副本。 - 1:實
- 0:偽
- NULL:輸入無效

適用於:SQL Server 2014 (12.x) SP2 和更新版本。
IsCloseCursorsOnCommitEnabled

資料類型: int
當交易提交時,所有開啟的游標都會關閉。 - 1:實
- 0:偽
- NULL:輸入無效
IsDatabaseSuspendedForSnapshotBackup

資料類型: int
應用程式已暫止。 - 1:實
- 0:偽
- NULL:輸入無效
IsFulltextEnabled

資料類型: int
資料庫已啟用全文檢索和語意索引。 - 1:實
- 0:偽
- NULL:輸入無效

適用於:SQL Server 2008 (10.0.x) 和更新版本。

注意: 此屬性的值現在沒有任何作用。 使用者資料庫一定會啟用全文檢索搜尋。 未來的 SQL Server 版本將會移除這個屬性。 請勿在新的開發工作中使用此屬性,並儘快修改目前使用此屬性的應用程式。
IsInStandBy

資料類型: int
資料庫在線上唯讀,允許還原記錄。 - 1:實
- 0:偽
- NULL:輸入無效
IsLocalCursorsDefault

資料類型: int
游標宣告預設為 LOCAL - 1:實
- 0:偽
- NULL:輸入無效
IsMemoryOptimizedElevateToSnapshotEnabled

資料類型: int
當工作階段設定SNAPSHOT設為 TRANSACTION ISOLATION LEVELREAD COMMITTED或較低的隔離層次時,會使用隔離來READ UNCOMMITTED存取記憶體最佳化資料表。 - 1:實
- 0:偽

適用於:SQL Server 2014 (12.x) 和更新版本。
IsMergePublished

資料類型: int
SQL Server 支援合併式複寫的資料庫資料表發行集 (若已安裝複寫功能)。 - 1:實
- 0:偽
- NULL:輸入無效
IsNullConcat

資料類型: int
空值串連運算元會產生 NULL - 1:實
- 0:偽
- NULL:輸入無效
IsNumericRoundAbortEnabled

資料類型: int
當運算式發生遺失有效位數的情形時,則產生錯誤。 - 1:實
- 0:偽
- NULL:輸入無效
IsOptimizedLockingOn

資料類型: int
已為資料庫啟用最佳化鎖定。 - 1:實
- 0:偽
- NULL: 沒有

適用於:SQL Server 2025(17.x)及以上版本、Azure SQL 資料庫、Azure SQL Managed InstanceAUTD,以及 Microsoft Fabric 中的 SQL 資料庫。
IsParameterizationForced

資料類型: int
PARAMETERIZATION database SET 選項是 FORCED - 1:實
- 0:偽
- NULL:輸入無效
IsQuotedIdentifiersEnabled

資料類型: int
識別碼允許有雙引號。 - 1:實
- 0:偽
- NULL:輸入無效
IsPublished

資料類型: int
若已安裝複寫功能,SQL Server 支援快照集或異動複寫的資料庫資料表發行集。 - 1:實
- 0:偽
- NULL:輸入無效
IsRecursiveTriggersEnabled

資料類型: int
啟用觸發程序的遞迴引發。 - 1:實
- 0:偽
- NULL:輸入無效
IsSubscribed

資料類型: int
將資料庫訂閱到發行集中。 - 1:實
- 0:偽
- NULL:輸入無效
IsSyncWithBackup

資料類型: int
資料庫是已發佈的資料庫或散發資料庫,而且它支援不會中斷交易複寫的還原。 - 1:實
- 0:偽
- NULL:輸入無效
IsTornPageDetectionEnabled

資料類型: int
SQL Server Database Engine 偵測到因為斷電或其他系統故障所造成的未完成 I/O 作業。 - 1:實
- 0:偽
- NULL:輸入無效
IsVerifiedClone

資料類型: int
資料庫是使用者資料庫的僅綱目和統計資料副本,使用 WITH VERIFY_CLONEDB 選項 DBCC CLONEDATABASE建立。 - 1:實
- 0:偽
- NULL:輸入無效

適用於:SQL Server 2016 (13.x) SP2 和更新版本。
IsXTPSupported

資料類型: int
指出資料庫是否支援記憶體內部 OLTP。 例如,建立和使用經記憶體最佳化的資料表與原生編譯的模組。

專屬於 SQL Server:

IsXTPSupported 與建立 In-Memory OLTP 物件所需的任何 MEMORY_OPTIMIZED_DATA 檔案群組無關。
- 1:實
- 0:偽
- NULL:輸入無效、錯誤或不適用

適用於:SQL Server 2016 (13.x) 和更新版本,以及 Azure SQL 資料庫。
LastGoodCheckDbTime

數據類型:datetime
在指定資料庫上執行的最後一次成功的 DBCC CHECKDB 日期和時間。 如果尚未在資料庫上執行,DBCC CHECKDB1900-01-01 00:00:00.000會傳回。 對於屬於可用性群組的資料庫, LastGoodCheckDbTime 會傳回在主要複本上執行的最後一次成功 DBCC CHECKDB 日期和時間,無論您從哪個複本執行命令。 NULL:輸入無效

適用於:SQL Server 2016(13.x)SP2、SQL Server 2017(14.x)CU9、SQL Server 2019(15.x)及以後版本、Azure SQL 資料庫,以及 Microsoft Fabric 中的 SQL 資料庫。
LCID

資料類型: int
Windows 的定序地區設定識別碼 (LCID)。 LCID 值 (十進位格式)。
MaxSizeInBytes

資料類型: bigint
資料庫的大小上限 (以位元組為單位)。 - Azure SQL 資料庫和 Azure Synapse 分析:除非已購買額外的儲存體,否則值是以 SLO 為基礎。

- 虛擬核心:值以 1GB 為增量,最高可達最大大小。

- NULL:資料庫未啟動

適用於:Azure SQL 資料庫、Microsoft Fabric 中的 SQL 資料庫,以及 Azure Synapse Analytics。
Recovery

資料類型: nvarchar(128)
資料庫復原模型。 - FULL:完整復原模式
- BULK_LOGGED:大量記錄的模型
- SIMPLE:簡單復原模式
ServiceObjective

資料類型: nvarchar(32)
描述資料庫在 SQL 資料庫、Microsoft Fabric 中的 SQL 資料庫,或 Azure Synapse Analytics 中的效能等級。 下列其中一個值:

- NULL:資料庫未啟動
- Shared (適用於 Web/Business 版本)
- Basic
- S0
- S1
- S2
- S3
- P1
- P2
- P3
- ElasticPool
- System (用於 master 資料庫)
- FabricSQLDB:Microsoft Fabric 中的 SQL 資料庫
ServiceObjectiveId

資料類型: uniqueidentifier
SQL Database 中服務目標的識別碼。 服務目標的識別碼。
SQLSortOrder

資料類型: tinyint
舊版 SQL Server 中所支援的 SQL Server 排序順序識別碼。 - 0:資料庫使用 Windows 定序

- >0:SQL Server 排序順序識別碼

- NULL:輸入無效,或資料庫尚未啟動
Status

資料類型: nvarchar(128)
資料庫狀態。 ONLINE:資料庫可供查詢。

便條: 函式可能會傳回資料庫開啟且尚未復原時的狀態 ONLINE 。 若要識別資料庫是否 ONLINE 可以接受連線,請查詢 Collation 的屬性 DATABASEPROPERTYEXONLINE當資料庫定序傳回非空值時,資料庫可以接受連線。 針對 Always On 資料庫,查詢 database_state 的 或 database_state_desc 資料行。sys.dm_hadr_database_replica_states

- OFFLINE:資料庫已明確離線。

- RESTORING:資料庫還原已開始。

- RECOVERING:資料庫復原已開始,但資料庫尚未準備好進行查詢。

- SUSPECT:資料庫未復原。

- EMERGENCY:資料庫處於緊急唯讀狀態。 存取權僅限於 系統管理員 成員
Updateability

資料類型: nvarchar(128)
指出資料是否可以修改。 READ_ONLY:資料庫支援資料讀取,但不支援資料修改。

- READ_WRITE:資料庫支援資料讀取和修改。
UserAccess

資料類型: nvarchar(128)
指定那些使用者可以存取資料庫。 SINGLE_USER:一次只能有一個 db_ownerdbcreatorsysadmin 使用者

- RESTRICTED_USER:僅限 db_ownerdbcreator系統管理員 角色的成員

- MULTI_USER:所有使用者
Version

資料類型: int
建立資料庫時所使用 SQL Server 程式碼的內部版本號碼。 僅供參考之用。 不支援。 我們無法保證未來的相容性。 - 版本號碼:資料庫已開啟。

- NULL:資料庫尚未啟動。
ReplicaID

資料類型: nvarchar(128)
已連線超大規模資料庫/複本的複本識別碼。 只會傳回已連線超大規模資料庫/複本的複本識別碼。 若要深入瞭解複本類型,請參閱超 大規模次要複本

- NULL:不是超大規模資料庫,或資料庫未啟動。

適用於:Azure SQL Database 超大規模資料庫。

傳回類型

sql_variant

例外狀況

發生錯誤時傳回 NULL ,或呼叫端沒有檢視物件的許可權。

在 SQL Server 中,使用者只能檢視使用者擁有或被授與某些權限之安全性實體的中繼資料。 此規則表示中繼資料發出的內建函式 (例如, OBJECT_ID 如果使用者對物件沒有許可權) 可以傳回 NULL 。 如需詳細資訊,請參閱中 繼資料可見度設定

備註

DATABASEPROPERTYEX 一次只傳回一個屬性設定。 若要顯示多個屬性設定,請使用 sys.databases 目錄檢視。

範例

本文中的程式代碼範例會使用 AdventureWorks2025AdventureWorksDW2025 範例資料庫,您可以從 Microsoft SQL Server 範例和社群專案 首頁下載。

A。 擷取AUTO_SHRINK資料庫選項的狀態

此範例會傳回資料庫的AUTO_SHRINK資料庫選項狀態AdventureWorks

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 資料庫向外延展功能時,您可以在資料庫的內容中執行下列查詢,以確認您是否連線到唯讀複本。 當您連線到唯讀複本時,它會傳回 READ_ONLY 。 如此一來,您也可以識別查詢在唯讀複本上的執行時機。

SELECT DATABASEPROPERTYEX(DB_NAME(), 'Updateability');