博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

SQL Server 查询表索引

Posted on 2017-09-13 09:53  峰影  阅读(7701)  评论(0)    收藏  举报

1. 查询表索引
SELECT
     索引名称=a.name
     ,表名=c.name
     ,索引字段名=d.name
     ,索引字段位置=d.colid
     ,c.status
  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='message' --查指定表
ORDER BY c.name,a.name,d.name;

 

2. 查询没有索引的表
select * from sysobjects where xtype='U'
                                                and name not in (
                                                SELECT c.name
                                                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='message' --查指定表
);
order by name