SQL server查看各表的索引(sql语句大全)

 更新时间:2023年12月12日 14:42:19   作者:木木夕ξ  
使用Sql语句查看 SQL Server 数据库中的索引,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud

(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

1、要查看 SQL Server 数据库中的索引,可以使用如下 SQL 语句:

SELECT
    TableName = t.name,
    IndexName = ind.name,
    ind.type_desc,
    ind.is_unique,
    ind.is_primary_key,
    ColumnNames =
        stuff(
            (
                select ', ' + col.name +
                case when ic.is_descending_key = 1 then ' desc' else '' end
                from sys.index_columns ic
                    inner join sys.columns col on ic.object_id = col.object_id and ic.column_id = col.column_id
                where
                    ic.object_id = ind.object_id
                    and ic.index_id = ind.index_id
                order by
                    ic.index_column_id
                for xml path ('')
            ),1,2,''
        )
FROM
    sys.indexes ind
    INNER JOIN sys.tables t ON ind.object_id = t.object_id
    INNER JOIN sys.schemas s ON t.schema_id = s.schema_id
WHERE
    ind.name IS NOT NULL
ORDER BY
    t.name, ind.name;

这条 SQL 语句查询了系统元数据表,包含了以下信息:

- 表名

- 索引名

- 索引类型(聚集索引或非聚集索引)

- 是否是唯一索引

- 是否是主键索引

- 索引包含的列名

执行上述 SQL 语句,将返回数据库中所有表的所有索引,并列出了每个索引的详细信息,包括列名、类型、是否唯一和主键等信息。可以根据这些信息来进行索引的优化和调整,以提高查询性能。

2、要查看 SQL Server 数据库中指定的多个表上的索引,可以使用如下 SQL 语句:

SELECT
    TableName = t.name,
    IndexName = ind.name,
    ind.type_desc,
    ind.is_unique,
    ind.is_primary_key,
    ColumnNames =
        stuff(
            (
                SELECT ', ' + col.name +
                CASE WHEN ic.is_descending_key = 1 THEN ' desc' ELSE '' END
                FROM sys.index_columns ic
                    INNER JOIN sys.columns col ON ic.object_id = col.object_id AND ic.column_id = col.column_id
                WHERE
                    ic.object_id = ind.object_id
                    AND ic.index_id = ind.index_id
                ORDER BY
                    ic.index_column_id
                FOR XML PATH ('')
            ),1,2,''
        )
FROM
    sys.indexes ind
    INNER JOIN sys.tables t ON ind.object_id = t.object_id
    INNER JOIN sys.schemas s ON t.schema_id = s.schema_id
WHERE
    t.name IN ('Table1', 'Table2', 'Table3') -- 替换成你要查询的多个表名,用逗号分隔
ORDER BY
    t.name, ind.name;

将上述 SQL 语句中的 `IN ('Table1', 'Table2', 'Table3')` 替换为你要查询的多个表名,并根据需要修改其他查询条件。执行该 SQL 语句将返回指定表上的所有索引,并列出每个索引的详细信息,包括索引名、类型、是否唯一和主键等信息。

注意:确保将表名作为字符串按正确的语法提供给 `IN` 表达式,并在 SQL 查询中使用正确的数据库上下文。

到此这篇关于SQL server查看各表的索引的文章就介绍到这了,更多相关SQL server索引内容请搜索程序员之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持程序员之家!

相关文章

  • SQL Server并发处理存在就更新解决方案探讨

    SQL Server并发处理存在就更新解决方案探讨

    这篇文章主要和大家一起探讨了SQL Server并发处理存在就更新的7种解决方案,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • SQL?SERVER常用的日期与时间查询总结

    SQL?SERVER常用的日期与时间查询总结

    这篇文章介绍了SQL?SERVER常用日期与时间查询的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-04-04
  • SQLServer2019 数据库的基本使用之图形化界面操作的实现

    SQLServer2019 数据库的基本使用之图形化界面操作的实现

    这篇文章主要介绍了SQLServer2019 数据库的基本使用之图形化界面操作的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • 一道关于数据库(经典父子级 ID 关联)更新题

    一道关于数据库(经典父子级 ID 关联)更新题

    这篇文章主要介绍了一道关于数据库(经典父子级 ID 关联)更新题,大家帮忙想想还有其它解决思路没有?
    2015-06-06
  • 升级SQL Server 2014的四个要点要注意

    升级SQL Server 2014的四个要点要注意

    升级一个关键业务SQL Server实例并不容易,它要求有周全的计划。计划不全会增加遇到升级问题的可能性,从而影响或延迟SQL Server 2014的升级。在规划SQLServer 2014升级时,有一些注意事项有助于避免遇到升级问题,需要的朋友可以参考下
    2015-08-08
  • sql server 常用的几个数据类型

    sql server 常用的几个数据类型

    Sql server中常用的几个数据类型,主要方便刚开始学习sqlserver的朋友。
    2009-07-07
  • SQL语句中的DDL类型的数据库定义语言操作

    SQL语句中的DDL类型的数据库定义语言操作

    这篇文章主要介绍了SQL语句中的DDL类型的数据库定义语言,主要是用来定义数据库中的对象的,例如数据库、表和字段的定义,简单的理解就是DDL语言是来操作数据库、表和字段的,需要的朋友可以参考下
    2022-08-08
  • SQL Server 2012 安装图解教程(附sql2012下载地址)

    SQL Server 2012 安装图解教程(附sql2012下载地址)

    在安装微软最新数据库SQL Server 2012之前,编者先确定一下安装环境:Windonws 7 SP1,32位操作系统、CPU是2.1GHz赛扬双核T3500,内存2.93GB
    2013-04-04
  • SQL字段拆分优化

    SQL字段拆分优化

    sql优化做的好,对程序的运行速度有很大的帮助,本篇文章给大家介绍sql字段拆分优化,需要的朋友一起来学习吧。
    2015-09-09
  • SQLServer触发器创建、删除、修改、查看示例代码

    SQLServer触发器创建、删除、修改、查看示例代码

    触发器是一种特殊的存储过程﹐它不能被显式地调用﹐而是在往表中插入记录﹑更新记录或者删除记录时被自动地激活。所以触发器可以用来实现对表实施复杂的完整性约束。
    2010-06-06

最新评论

?


http://www.vxiaotou.com