MSSQL·查询数据库中所有索引的相关信息

database

阅文时长

| 0.45分钟

字数统计

| 784字符

主要内容

| 1、引言&背景

2、声明与参考资料

『MSSQL·查询数据库中所有索引的相关信息』

编写人

| SCscHero

编写时间

| 2021/5/16 AM1:56

文章类型

| 系列

完成度

| 已完成

座右铭

每一个伟大的事业,都有一个微不足道的开始。

一、引言&背景   完成度:100%

a) 应对问题&场景

查询DB中所有索引的相关信息。

b) 解决原理&方法

SELECT CASE

WHEN t.[type] = "U" THEN

"表"

WHEN t.[type] = "V" THEN

"视图"

END AS "类型",

SCHEMA_NAME(t.schema_id) + "." + t.[name] AS "(表/视图)名称",

i.[name] AS 索引名称,

SUBSTRING(column_names, 1, LEN(column_names) - 1) AS "列名",

CASE

WHEN i.[type] = 1 THEN

"聚集索引"

WHEN i.[type] = 2 THEN

"非聚集索引"

WHEN i.[type] = 3 THEN

"XML索引"

WHEN i.[type] = 4 THEN

"空间索引"

WHEN i.[type] = 5 THEN

"聚簇列存储索引"

WHEN i.[type] = 6 THEN

"非聚集列存储索引"

WHEN i.[type] = 7 THEN

"非聚集哈希索引"

END AS "索引类型",

CASE

WHEN i.is_unique = 1 THEN

"唯一"

ELSE

"不唯一"

END AS "索引是否唯一"

FROM sys.objects t

INNER JOIN sys.indexes i

ON t.object_id = i.object_id

CROSS APPLY

(

SELECT col.[name] + ", "

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 = t.object_id

AND ic.index_id = i.index_id

ORDER BY col.column_id

FOR XML PATH("")

) D(column_names)

WHERE t.is_ms_shipped <> 1

AND index_id > 0

ORDER BY i.[name];

二、声明与参考资料   完成度:100%

原创博文,未经许可请勿转载。

如有帮助,欢迎点赞、收藏、关注。如有问题,请评论留言!如需与博主联系的,直接博客私信SCscHero即可。

以上是 MSSQL&#183;查询数据库中所有索引的相关信息 的全部内容, 来源链接: utcz.com/z/535616.html

回到顶部