使用SQL语句查询某表中所有的主键、唯一索引以及这些主键、索引所包含的字段(转)
2017-12-22 09:43
886 查看
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。提供该列是为了向后兼容
相关文章推荐
- oracle 中查询一个表的所有字段名以及属性的sql语句应该怎么写?
- 使用SQL语句查询MySQL,SQLServer,Oracle所有数据库名和表名,字段名
- mysql使用sql语句查询数据库所有表注释已经表字段注释
- sql查询调优之where条件排序字段以及limit使用索引的奥秘
- SQL语句查出某个用户下所有表, 以及表对应的同义词,主键,索引。
- 在oracle中查询已知表名的表中所有字段名,每个字段是否是主键,是否是外键,是否为空的sql语句
- sql查询调优之where条件排序字段以及limit使用索引的奥秘
- 一个sql语句,包含有几乎所有标准查询语法
- ABAP--在查询条件只包含部分索引字段时,如何使用索引
- 查询某个字段没有值的所有记录的SQL语句怎么写?
- 【转】SQL语句:获取用户表名、得到表中的所有列信息、得到表中主键所包含的列名
- sql语句模糊查询时查询内容包含 通配符“%”,占位符“_”时 使用转义字符
- 关于Oracle与SqlServer中获取所有字段、主键、外键的sql语句(转)
- sql语句查询数据库里的所有表名,字段名
- 关于Oracle与SqlServer中获取所有字段、主键、外键的sql语句
- ABAP--在查询条件只包含部分索引字段时,如何使用索引
- 关于Oracle与SqlServer中获取所有字段、主键、外键的sql语句
- sql语句在sqlserver中根据字段名查询,看哪些表包含了这个字段
- 关于Oracle与SqlServer中获取所有字段、主键、外键的sql语句
- (转)列出SQL SERVER 所有表,字段名,主键,类型,长度,小数位数等信息的SQL语句