zoukankan      html  css  js  c++  java
  • 使用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猫)

  • 相关阅读:
    Xamarin.Forms项目无法添加服务引用
    Xamarin Android长度单位区别
    21IC菜农研究的HotWC3超级CRC运算器
    Delphi天气预报查询
    超外差接收机工作原理?
    ARM汇编指令的特点和速查表
    序列号的设计,不重复的实现一机一码
    iOS第一个简单APP
    GetEnvironmentVariable 获取常用系统变量(转)
    Delphi版的Base64转换函数(修改版)
  • 原文地址:https://www.cnblogs.com/garyxiao/p/2916537.html
Copyright © 2011-2022 走看看