DATABASEPROPERTYEX (Transact-SQL)
傳回 SQL Server 中指定資料庫之指定資料庫選項或屬性的目前設定。
適用於:SQL Server (SQL Server 2008 到目前的版本)、Azure SQL Database。 |
語法
DATABASEPROPERTYEX ( database , property )
引數
database
這是代表傳回的具名屬性資訊所針對之資料庫名稱的運算式。 database 是 nvarchar(128)。property
這是代表要傳回之資料庫屬性的運算式。 property 是 varchar(128),而且可以是下列其中一個值。 傳回類型是 sql_variant。 下表顯示了每一屬性值的基底資料型別。注意
如果沒有啟動資料庫,SQL Server 透過直接存取資料庫 (而非從中繼資料中擷取值) 所擷取的屬性會傳回 NULL。也就是說,如果資料庫的 AUTO_CLOSE 設成 ON,否則資料庫會離線。
屬性
描述
傳回的值
Collation
資料庫的預設定序名稱。
定序名稱
NULL = 資料庫未啟動。
基底資料型別:nvarchar(128)
ComparisonStyle
Windows 的定序比較樣式。 ComparisonStyle 是使用下列值所計算的點陣圖。
樣式
值
忽略大小寫
1
忽略腔調字
2
忽略假名
65536
忽略寬度
131072
例如,預設值 196609 是結合「忽略大小寫」、「忽略假名」和「忽略寬度」等選項的結果。
傳回比較樣式。
所有的二進位定序皆傳回 0。
基底資料型別:int
版本
資料庫版本。
Web = Web Edition 資料庫
Business = Business Edition 資料庫
NULL = 資料庫未啟動。
基底資料型別:nvarchar(64).
適用於:Azure SQL Database。
IsAnsiNullDefault
資料庫遵照允許 Null 值的 ISO 規則。
1 = TRUE
0 = FALSE
NULL = 輸入無效
基底資料型別:int
IsAnsiNullsEnabled
所有對於 Null 的比較,都會得出「未知」。
1 = TRUE
0 = FALSE
NULL = 輸入無效
基底資料型別:int
IsAnsiPaddingEnabled
字串在進行比較或插入處理之前,先填補至相同的長度。
1 = TRUE
0 = FALSE
NULL = 輸入無效
基底資料型別:int
IsAnsiWarningsEnabled
當發生標準錯誤狀況時,會發出錯誤或警告訊息。
1 = TRUE
0 = FALSE
NULL = 輸入無效
基底資料型別:int
IsArithmeticAbortEnabled
在查詢執行期間,當發生溢位或除以零的錯誤時,會停止查詢。
1 = TRUE
0 = FALSE
NULL = 輸入無效
基底資料型別:int
IsAutoClose
在最後一個使用者結束之後,資料庫完整關機並釋出資源。
1 = TRUE
0 = FALSE
NULL = 輸入無效
基底資料型別:int
IsAutoCreateStatistics
查詢最佳化工具會視需要建立單一資料行統計資料來改善查詢效能。
1 = TRUE
0 = FALSE
NULL = 輸入無效
基底資料型別:int
IsAutoCreateStatisticsIncremental
自動建立的單一資料行統計資料會累加 (如果可能)。
1 = TRUE
0 = FALSE
NULL = 輸入無效
基底資料型別:int
適用於:SQL Server 2014 到 SQL Server 2014。
IsAutoShrink
資料庫檔案是自動定期壓縮的候選項。
1 = TRUE
0 = FALSE
NULL = 輸入無效
基底資料型別:int
IsAutoUpdateStatistics
當查詢使用現有的統計資料而且這些統計資料可能已過期時,查詢最佳化工具就會更新這些統計資料。
1 = TRUE
0 = FALSE
NULL = 輸入無效
基底資料型別:int
IsCloseCursorsOnCommitEnabled
關閉認可交易時在開啟狀態的資料指標。
1 = TRUE
0 = FALSE
NULL = 輸入無效
基底資料型別:int
IsFulltextEnabled
資料庫已啟用全文檢索和語意索引。
1 = TRUE
0 = FALSE
NULL = 輸入無效
基底資料型別:int
注意
此屬性的值沒有任何作用。使用者資料庫一定會啟用全文檢索搜尋。未來的 SQL Server 版本將移除這個資料行。請勿在新的開發工作中使用此資料行,並且儘速修改目前使用任何一個資料行的應用程式。
適用於:SQL Server 2008 到 SQL Server 2014。
IsInStandBy
資料庫在線上唯讀,允許還原記錄。
1 = TRUE
0 = FALSE
NULL = 輸入無效
基底資料型別:int
IsLocalCursorsDefault
資料指標宣告預設為 LOCAL。
1 = TRUE
0 = FALSE
NULL = 輸入無效
基底資料型別:int
IsMemoryOptimizedElevateToSnapshotEnabled
當工作階段設定 TRANSACTION ISOLATION LEVEL 設定為較低的隔離等級 READ COMMITTED 或 READ UNCOMMITTED 時,會使用 SNAPSHOT 隔離存取記憶體最佳化的資料表。
適用於:SQL Server 2014 到 SQL Server 2014。
1 = TRUE
0 = FALSE
基底資料型別:int
IsMergePublished
可以為合併式複寫發行的資料庫資料表 (若已安裝複寫功能)。
1 = TRUE
0 = FALSE
NULL = 輸入無效
基底資料型別:int
IsNullConcat
Null 串連運算元產生 NULL。
1 = TRUE
0 = FALSE
NULL = 輸入無效
基底資料型別:int
IsNumericRoundAbortEnabled
當運算式發生遺失有效位數的情形時,則產生錯誤。
1 = TRUE
0 = FALSE
NULL = 輸入無效
基底資料型別:int
IsParameterizationForced
PARAMETERIZATION 資料庫 SET 選項是 FORCED。
1 = TRUE
0 = FALSE
NULL = 輸入無效
IsQuotedIdentifiersEnabled
識別碼可以使用雙引號。
1 = TRUE
0 = FALSE
NULL = 輸入無效
基底資料型別:int
IsPublished
可以為快照集或異動複寫發行的資料庫資料表 (若已安裝複寫功能)。
1 = TRUE
0 = FALSE
NULL = 輸入無效
基底資料型別:int
IsRecursiveTriggersEnabled
啟用觸發程序的遞迴引發。
1 = TRUE
0 = FALSE
NULL = 輸入無效
基底資料型別:int
IsSubscribed
將資料庫訂閱到發行集中。
1 = TRUE
0 = FALSE
NULL = 輸入無效
基底資料型別:int
IsSyncWithBackup
該資料庫是已發行的資料庫或散發資料庫,並且能在不干擾異動複寫的情況下被還原。
1 = TRUE
0 = FALSE
NULL = 輸入無效
基底資料型別:int
IsTornPageDetectionEnabled
SQL Server Database Engine 偵測到因為斷電或其他系統失效所造成的不完全 I/O 作業。
1 = TRUE
0 = FALSE
NULL = 輸入無效
基底資料型別:int
LCID
Windows 的定序地區設定識別碼 (LCID)。
LCID 值 (十進位格式)。
基底資料型別:int
MaxSizeInBytes
資料庫的大小上限 (以位元組為單位)。
1073741824
5368709120
10737418240
21474836480
32212254720
42949672960
53687091200
NULL = 資料庫未啟動
基底資料型別:bigint
適用於:Azure SQL Database。
Recovery
資料庫的復原模式。
FULL = 完全復原模式
BULK_LOGGED = 大量記錄模式
SIMPLE = 簡單復原模式
基底資料型別:nvarchar(128)
SQLSortOrder
舊版 SQL Server 中所支援的 SQL Server 排序順序識別碼。
0 = 資料庫使用 Windows 定序
>0 = SQL Server 排序順序識別碼
NULL = 輸入無效或未啟動資料庫。
基底資料型別:tinyint
Status
資料庫狀態。
ONLINE = 資料庫可用於查詢。
注意
當資料庫開啟中且尚未復原時,可能會傳回 ONLINE 狀態。若要識別資料庫可接受連接的時間,請查詢 DATABASEPROPERTYEX 的 Collation 屬性。當資料庫定序傳回非 Null 值時,表示資料庫可接受連接。對於 AlwaysOn 資料庫,可以查詢 sys.dm_hadr_database_replica_states 的 database_state 或 database_state_desc 資料行。
OFFLINE = 資料庫明確離線。
RESTORING = 正在還原資料庫。
RECOVERING = 資料庫復原中,無法進行查詢。
SUSPECT = 資料庫未復原。
EMERGENCY = 資料庫處於緊急、唯讀的狀態。 存取限於系統管理員 (sysadmin) 成員
基底資料型別:nvarchar(128)
Updateability
指出資料是否可以修改。
READ_ONLY = 資料可以讀取,但無法修改。
READ_WRITE = 資料可以讀取及修改。
基底資料型別:nvarchar(128)
UserAccess
指定那些使用者可以存取資料庫。
SINGLE_USER = 一次只有一個 db_owner、dbcreator 或系統管理員 (sysadmin) 使用者
RESTRICTED_USER = 只有 db_owner、dbcreator 和系統管理員 (sysadmin) 角色的成員
MULTI_USER = 所有使用者
基底資料型別:nvarchar(128)
Version
建立資料庫所用 SQL Server 程式碼的內部版本號碼。 僅供參考之用。不支援。我們無法保證未來的相容性。
版本號碼 = 資料庫是開啟的。
NULL = 資料庫未啟動。
基底資料型別:int
傳回類型
sql_variant
例外狀況
當發生錯誤,或呼叫端沒有檢視物件的權限時,便會傳回 NULL。
在 SQL Server 中,使用者只能檢視使用者擁有或被授與某些權限之安全性實體的中繼資料。 這表示發出中繼資料的內建函數 (例如,OBJECT_ID) 會在使用者不具有該物件任何權限時傳回 NULL。 如需詳細資訊,請參閱<中繼資料可見性組態>。
備註
DATABASEPROPERTYEX 一次只傳回一個屬性設定。 若要顯示多個屬性設定,請使用 sys.databases 目錄檢視。
範例
A.擷取 AUTO_SHRINK 資料庫選項的狀態
下列範例會傳回 AdventureWorks 資料庫 AUTO_SHRINK 資料庫選項的狀態。
SELECT DATABASEPROPERTYEX('AdventureWorks2012', 'IsAutoShrink');
以下為結果集: 這表示 AUTO_SHRINK 是關閉狀態。
------------------
0
B.擷取資料庫的預設定序
下列範例會傳回 AdventureWorks 資料庫預設定序的名稱。
SELECT DATABASEPROPERTYEX('AdventureWorks2012', 'Collation');
以下為結果集:
------------------------------
SQL_Latin1_General_CP1_CI_AI
請參閱
參考
sys.database_files (Transact-SQL)