数据库中如何查看每个表的每个索引名字和建立时间求高人解答。
最好 
数据库 表名  字段名 索引名 建立时间 关键是索引建立时间不知道怎么找

解决方案 »

  1.   

    SELECT TOP 100 PERCENT --a.id, CASE WHEN b.keyno = 1 THEN c.name ELSE '' END AS 表名, CASE WHEN b.keyno = 1 THEN a.name ELSE '' END AS 索引名称, d.name AS 列名, b.keyno AS 索引顺序, CASE indexkey_property(c.id, b.indid, b.keyno, 'isdescending') WHEN 1 THEN '降序' WHEN 0 THEN '升序' END AS 排序, CASE WHEN p.id IS NULL THEN '' ELSE '√' END AS 主键, CASE INDEXPROPERTY(c.id, a.name, 'IsClustered') WHEN 1 THEN '√' WHEN 0 THEN '' END AS 聚集, CASE INDEXPROPERTY(c.id, a.name, 'IsUnique') WHEN 1 THEN '√' WHEN 0 THEN '' END AS 唯一, CASE WHEN e.id IS NULL THEN '' ELSE '√' END AS 唯一约束, a.OrigFillFactor AS 填充因子, c.crdate AS 创建时间, c.refdate AS 更改时间 FROM dbo.sysindexes a INNER JOIN dbo.sysindexkeys b ON a.id = b.id AND a.indid = b.indid INNER JOIN dbo.syscolumns d ON b.id = d.id AND b.colid = d.colid INNER JOIN dbo.sysobjects c ON a.id = c.id AND c.xtype = 'U' LEFT OUTER JOIN dbo.sysobjects e ON e.name = a.name AND e.xtype = 'UQ' LEFT OUTER JOIN dbo.sysobjects p ON p.name = a.name AND p.xtype = 'PK' WHERE (OBJECTPROPERTY(a.id, N'IsUserTable') = 1) AND (OBJECTPROPERTY(a.id, N'IsMSShipped') = 0) AND (INDEXPROPERTY(a.id, a.name, 'IsAutoStatistics') = 0) ORDER BY c.name, a.name, b.keyno
      

  2.   

    --结合sys.indexes和sys.index_columns,sys.objects,sys.columns查询索引所属的表或视图的信息
    select
      o.name as 表名,
      i.name as 索引名,
      c.name as 列名,
      i.type_desc as 类型描述,
      is_primary_key as 主键约束,
      is_unique_constraint as 唯一约束,
      is_disabled as 禁用
    from
      sys.objects o 
    inner join
      sys.indexes i
    on
      i.object_id=o.object_id
    inner join 
      sys.index_columns ic
    on
      ic.index_id=i.index_id and ic.object_id=i.object_id
    inner join
      sys.columns c
    on
      ic.column_id=c.column_id and ic.object_id=c.object_id
    go--查询索引的键和列信息
    select 
      o.name as 表名,
      i.name as 索引名,
      c.name as 字段编号,
    from
      sysindexes i inner join sysobjects o 
    on
      i.id=o.id
    inner join
      sysindexkeys k 
    on
      o.id=k.id and i.indid=k.indid
    inner join
      syscolumns c 
    on
      c.id=i.id and k.colid=c.colid
    where
      o.name='表名'