共用方式為


DATABASEPROPERTYEX (Transact-SQL)

傳回 SQL Server 中指定資料庫之指定資料庫選項或屬性的目前設定。

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

主題連結圖示 Transact-SQL 語法慣例

語法

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

請參閱

參考

ALTER DATABASE (Transact-SQL)

sys.databases (Transact-SQL)

sys.database_files (Transact-SQL)

SERVERPROPERTY (Transact-SQL)

概念

資料庫狀態