INDEXPROPERTY (Transact-SQL)

傳回指定資料表識別碼、索引或統計資料名稱以及屬性名稱的具名索引或統計資料屬性值。如果是 XML 索引,則傳回 NULL。

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

語法

INDEXPROPERTY ( object_ID , index_or_statistics_name , property ) 

引數

  • object_ID
    這是包含要提供的索引屬性資訊所屬之資料表或索引檢視之物件識別碼的運算式。object_ID 是 int。

  • index_or_statistics_name
    這是包含傳回屬性資訊所屬之索引或統計資料名稱的運算式。index_or_statistics_name 是 nvarchar(128)。

  • property
    這是包含要傳回之資料庫屬性名稱的運算式。property 是 varchar(128),它可以是下列值之一。

    [!附註]

    除非另有說明,否則,當 property 不是有效屬性的名稱、object_ID 不是有效的物件識別碼、object_ID 不是指定屬性所支援的物件類型,或呼叫者沒有檢視物件中繼資料的權限時,便傳回 NULL。

    屬性

    描述

    IndexDepth

    索引的深度。

    索引層級的數目。

    NULL = XML 索引或輸入無效。

    IndexFillFactor

    當建立索引或上次重建索引時,所用的填滿因數值。

    填滿因數

    IndexID

    指定的資料表或索引檢視之索引的索引識別碼。

    Index ID

    IsAutoStatistics

    ALTER DATABASE 的 AUTO_CREATE_STATISTICS 選項所產生的統計資料。

    1 = True

    0 = False 或 XML 索引。

    IsClustered

    索引已建立叢集。

    1 = True

    0 = False 或 XML 索引。

    IsDisabled

    索引已停用。

    1 = True

    0 = False

    NULL = 輸入無效。

    IsFulltextKey

    索引是資料表的全文檢索索引鍵。

    1 = True

    0 = False 或 XML 索引。

    NULL = 輸入無效。

    IsHypothetical

    索引是假設的,無法直接當作資料存取路徑來使用。假設的索引用來存放資料行層級的統計資料,由 Database Engine Tuning Advisor 來維護和使用。

    1 = True

    0 = False 或 XML 索引

    NULL = 輸入無效。

    IsPadIndex

    索引指定每個內部節點保留開啟狀態的空間。

    1 = True

    0 = False 或 XML 索引。

    IsPageLockDisallowed

    ALTER INDEX 的 ALLOW_PAGE_LOCKS 選項所設定的頁面鎖定值。

    1 = 不允許頁面鎖定。

    0 = 允許頁面鎖定。

    NULL = 輸入無效。

    IsRowLockDisallowed

    ALTER INDEX 的 ALLOW_ROW_LOCKS 選項所設定的資料列鎖定值。

    1 = 不允許資料列鎖定。

    0 = 允許資料列鎖定。

    NULL = 輸入無效。

    IsStatistics

    index_or_statistics_name 是 CREATE STATISTICS 陳述式或 ALTER DATABASE 的 AUTO_CREATE_STATISTICS 選項所建立的統計資料。

    1 = True

    0 = False 或 XML 索引。

    IsUnique

    索引是唯一的。

    1 = True

    0 = False 或 XML 索引。

傳回類型

int

例外

當發生錯誤,或呼叫者沒有檢視物件的權限時,便會傳回 NULL。

使用者只能檢視使用者擁有或被授與某些權限之安全性實體的中繼資料。這表示發出中繼資料的內建函數 (例如,INDEXPROPERTY) 會在使用者不具有該物件任何權限時傳回 NULL。如需詳細資訊,請參閱<中繼資料可見性組態>和<中繼資料可見性疑難排解>。

範例

下列範例會傳回 Employee 資料表 PK_Employee_EmployeeID 索引的 IsClusteredIndexDepthIndexFillFactor 屬性的值。

USE AdventureWorks;
GO
SELECT 
    INDEXPROPERTY(OBJECT_ID('HumanResources.Employee'),
        'PK_Employee_EmployeeID','IsClustered')AS [Is Clustered],
    INDEXPROPERTY(OBJECT_ID('HumanResources.Employee'),
        'PK_Employee_EmployeeID','IndexDepth') AS [Index Depth],
    INDEXPROPERTY(OBJECT_ID('HumanResources.Employee'),
        'PK_Employee_EmployeeID','IndexFillFactor') AS [Fill Factor];
GO

結果集如下:

Is Clustered Index Depth Fill Factor 
------------ ----------- ----------- 
1            2           0

(1 row(s) affected)