使用SQL語句查詢某表中所有的主鍵、唯一索引以及這些主鍵、索引所包含的字段


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貓)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM