日期:2014-05-18  浏览次数:20693 次

如何查看非聚集索引的信息,比如創建時間等。
select * from sysobjects查看不到非聚集索引的信息,所以我想問:
如何查看非聚集索引的信息,比如創建時間等。


Sysobjects:


------解决方案--------------------
SQL code
--结合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='表名'

------解决方案--------------------
探讨
樓上的思路沒有錯。

但沒有提供查看非聚集索引是何時創建(或修改)的信息。

------解决方案--------------------
也可以用存储过程
exec sp_autostats '表名' 查看一个表的索引的统计信息 有上次修改的时间
------解决方案--------------------
探讨
http://blog.csdn.net/lvjin110/article/details/6935150




SQL code

--查看索引的詳細信息(包含創建及修改時間)
select
o.name as 表名,
i.name as 索引名,
c.name as 列名,
i.type_desc as 類型描述,
is_pr……