使⽤SQL语句查询某表中所有的主键、唯⼀索引以及这些主
键、索引所包含的字段(转)...
常用的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
lid = 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。提供该列是为了向后兼容

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。