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

2024-03-01 0 332

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索引内容请搜索悠久资源以前的文章或继续浏览下面的相关文章希望大家以后多多支持悠久资源!

您可能感兴趣的文章:

  • sqlserver 给表添加索引的操作方法
  • SQLServer表的索引碎片查询和处理
  • 详解SQL Server表和索引存储结构
  • 详解sqlserver查询表索引
  • sqlserver2005自动创建数据表和自动添加某个字段索引

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悠久资源 MsSql SQL server查看各表的索引(sql语句大全) https://www.u-9.cn/database/mssql/176334.html

常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务