SELECT 索引名稱 = a.name , 表名 = c.name , 索引字段名 = d.name , 索引字段位置 = d.colid FROM sysindexes a JOIN sysindexkeys b ON a.id = b.id AND a.indid = b.indid JOIN sysobjects c ON b.id = c.id JOIN syscolumns d ON b.id = d.id AND b.colid = d.colid WHERE a.indid NOT IN ( 0, 255 ) -- and c.xtype='U' and c.status>0 --查所有用戶表 --AND c.name = 'ORDER' --查指定表 ORDER BY c.name , a.name , d.name
sysindexes
數據庫中的每個索引和表在表中各占一行。該表存儲在每個數據庫中。
列名 數據類型 描述
id int 表 ID(如果 indid = 0 或 255)。否則為索引所屬表的 ID。
status int 內部系統狀態信息。
first binary(6) 指向第一頁或根頁的指針。
indid smallint 索引 ID:
1 = 聚集索引
>1 = 非聚集
255 = 具有 text 或 image 數據的表條目
root binary(6) 如果 indid >= 1 和 < 255,root 是指向根頁的指針。如果 indid = 0 或 indid = 255,root 是指向最后一頁的指針。
minlen smallint 最小行大小。
keycnt smallint 鍵的數目。
groupid smallint 在其上創建對象的文件組 ID。
dpages int 如果 indid = 0 或 indid = 1,dpages 是已用數據頁的計數。如果 indid = 255,其設置為 0。否則是已用索引頁的計數。
reserved int 如果 indid = 0 或 indid = 1,reserved 是分配給所有索引和表數據的頁計數。如果 indid = 255,reserved 是分配給 text 或 image 數據的頁計數。否則是分配給索引的頁計數。
used int 如果 indid = 0 或 indid = 1,used 是用於所有索引和表數據的總頁數。如果 indid = 255,used 是用於 text 或 image 數據的頁計數。否則是用於索引的頁計數。
rowcnt bigint 基於 indid = 0 和 indid = 1 的數據級行計數。如果 indid = 255,rowcnt 設置為 0。
rowmodctr int 對自上次更新表的統計后插入、刪除或更新行的總數進行計數。
xmaxlen smallint 最大行大小。
maxirow smallint 最大非葉索引行大小。
OrigFillFactor tinyint 創建索引時使用的起始填充因子值。不保留該值;然而,如果需要重新創建索引但記不住當初使用的填充因子,則該值可能很有幫助。
reserved1 tinyint 保留。
reserved2 int 保留。
FirstIAM binary(6) 保留。
impid smallint 保留。索引實現標志。
lockflags smallint 用於約束經過考慮的索引鎖粒度。例如,對於本質上是只讀的查找表,可以將其設置為僅進行表級鎖定以使鎖定成本減到最小。
pgmodctr int 保留。
keys varbinary(816) 組成索引鍵的列 ID 列表。
name sysname 表名(如果 indid = 0 或 255)。否則為索引的名稱。
statblob image 統計 BLOB。
maxlen int 保留。
rows int 基於 indid = 0 和 indid = 1的數據級行數,該值對於 indid >1 重復。如果 indid = 255,rows 設置為 0。提供該列是為了向后兼容。
(轉自:鼠U貓)