码迷,mamicode.com
首页 > 数据库 > 详细

SQL查询表中的有那些索引

时间:2016-09-21 19:53:54      阅读:223      评论:0      收藏:0      [点我收藏+]

标签:

方法1. 使用系统表

-- 查询一个表中的索引及索引列
USE AdventureWorks2008
GO
SELECT  indexname = a.name , tablename = c. name , indexcolumns = d .name , a .indid
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 = DatabaseLog --查指定表
ORDER BY c. name ,
        a.name ,
        d.name

方法2. 使用系统存储过程

sp_helpindex :报告有关表或视图上索引的信息。

/*  sp_helpindex [ @objname = ] ‘name‘
参数 :[@objname =] ‘name‘
是当前数据库中表或视图的名称。name 的数据类型为 nvarchar(776),没有默认值。 */

use DB_NAME
go

sp_helpindex Tablename

返回代码值
0(成功)或 1(失败)
结果集:

 

 

列名

数据类型

描述

index_name

sysname

索引名。

index_description

varchar(210)

索引描述。

index_keys

nvarchar(2078)

表或视图列,在这些列上构造索引。

被降序索引的列将在结果集中列出,该列的名称后面带有一个减号 (-),当列出被升序索引的列(这是默认情况)时,只带有该列的名称。
注释
如果已经用 UPDATE STATISTICS 的 NORECOMPUTE 选项设置了索引,那么在 sp_helpindex 的结果集中会显示这个信息。

 

转:cc  SQL查询表中的有那些索引

SQL查询表中的有那些索引

标签:

原文地址:http://www.cnblogs.com/wangfuyou/p/5893912.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!