如何在SQL Server中使用sysindexes表获取表索引和相关列?

mas*_*ani 3 sql sql-server

我想在我的表中获取已定义的索引和相关列.我可以做到这一点

sp_helpindex 'tableName'
Run Code Online (Sandbox Code Playgroud)

但我想分别得到独特和非独特的索引.我们怎么能通过在sysindexes表上写一个查询来做到这一点?

And*_*mar 9

sys.indexes视图有一列is_unique:

select  i.name as IndexName
,       ic.key_ordinal as IndexColumnPosition
,       c.name as IndexColumnName
from    sys.indexes i
left join
        sys.index_columns ic
on      ic.object_id = i.object_id
        and ic.index_id = i.index_id
left join
        sys.columns c
on      c.object_id = ic.object_id
        and c.column_id = ic.column_id
where   i.object_id = object_id('YourTable')
        and i.is_unique = 1
Run Code Online (Sandbox Code Playgroud)