適用於:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
分析平台系統(PDW)
Microsoft Fabric 中的 SQL 資料庫
對於 SQL Server 中指定的資料庫,函式會 DATABASEPROPERTYEX 傳回指定資料庫選項或屬性的目前設定。
語法
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 LEVEL、 READ 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 CHECKDB則1900-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 的屬性 DATABASEPROPERTYEX。
ONLINE當資料庫定序傳回非空值時,資料庫可以接受連線。 針對 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_owner、 dbcreator或 sysadmin 使用者- RESTRICTED_USER:僅限 db_owner、 dbcreator 或 系統管理員 角色的成員- 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 目錄檢視。
範例
本文中的程式代碼範例會使用 AdventureWorks2025 或 AdventureWorksDW2025 範例資料庫,您可以從 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');