INDEXPROPERTY (Transact-SQL)
傳回指定資料表識別碼、索引或統計資料名稱以及屬性名稱的具名索引或統計資料屬性值。 如果是 XML 索引,則傳回 NULL。
適用於:SQL Server (SQL Server 2008 透過目前版本)、Windows Azure 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 = 輸入無效。
適用於:SQL Server 2008 至 SQL Server 2014。
IsHypothetical
索引是假設的,無法直接當作資料存取路徑來使用。 假設的索引用來存放資料行層級的統計資料,由 Database Engine Tuning Advisor 來維護和使用。
1 = True
0 = False 或 XML 索引
NULL = 輸入無效。
IsPadIndex
索引指定每個內部節點保留開啟狀態的空間。
1 = True
0 = False 或 XML 索引。
適用於:SQL Server 2008 至 SQL Server 2014。
IsPageLockDisallowed
ALTER INDEX 的 ALLOW_PAGE_LOCKS 選項所設定的頁面鎖定值。
1 = 不允許頁面鎖定。
0 = 允許頁面鎖定。
NULL = 輸入無效。
適用於:SQL Server 2008 至 SQL Server 2014。
IsRowLockDisallowed
ALTER INDEX 的 ALLOW_ROW_LOCKS 選項所設定的資料列鎖定值。
1 = 不允許資料列鎖定。
0 = 允許資料列鎖定。
NULL = 輸入無效。
適用於:SQL Server 2008 至 SQL Server 2014。
IsStatistics
index_or_statistics_name 是 CREATE STATISTICS 陳述式或 ALTER DATABASE 的 AUTO_CREATE_STATISTICS 選項所建立的統計資料。
1 = True
0 = False 或 XML 索引。
IsUnique
索引是唯一的。
1 = True
0 = False 或 XML 索引。
IsColumnstore
索引是 xVelocity 記憶體最佳化的資料行存放區索引。
1 = True
0 = False
適用於:SQL Server 2012 至 SQL Server 2014。
傳回類型
int
例外狀況
當發生錯誤,或呼叫端沒有檢視物件的權限時,便會傳回 NULL。
使用者只能檢視使用者擁有或被授與某些權限之安全性實體的中繼資料。 這表示發出中繼資料的內建函數 (例如,INDEXPROPERTY) 會在使用者不具有該物件任何權限時傳回 NULL。 如需詳細資訊,請參閱<中繼資料可見性組態>。
範例
下列範例會傳回 AdventureWorks2012 資料庫中 Employee 資料表 PK_Employee_BusinessEntityID 索引的 IsClustered、IndexDepth 和 IndexFillFactor 屬性的值。
SELECT
INDEXPROPERTY(OBJECT_ID('HumanResources.Employee'),
'PK_Employee_BusinessEntityID','IsClustered')AS [Is Clustered],
INDEXPROPERTY(OBJECT_ID('HumanResources.Employee'),
'PK_Employee_BusinessEntityID','IndexDepth') AS [Index Depth],
INDEXPROPERTY(OBJECT_ID('HumanResources.Employee'),
'PK_Employee_BusinessEntityID','IndexFillFactor') AS [Fill Factor];
結果集如下:
Is Clustered Index Depth Fill Factor
------------ ----------- -----------
1 2 0
(1 row(s) affected)
請參閱
參考
sys.index_columns (Transact-SQL)
sys.stats_columns (Transact-SQL)