首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

数据库中怎么查看每个表的每个索引名字和建立时间

2013-11-12 
数据库中如何查看每个表的每个索引名字和建立时间数据库中如何查看每个表的每个索引名字和建立时间求高人

数据库中如何查看每个表的每个索引名字和建立时间
数据库中如何查看每个表的每个索引名字和建立时间

求高人解答。
最好 
数据库 表名  字段名 索引名 建立时间 

关键是索引建立时间不知道怎么找
[解决办法]

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

热点排行