检查表列上是否存在非聚集索引

Dan*_*Dan 3 sql-server indexing

在SQL Server 2000中,如何检查表的单个列上是否存在非聚集索引?

Rem*_*anu 5

你可以在sysindexessysindexkeys中查找它.您还可以使用sp_help来解释表,包括所有索引.

select k.*, x.name
from  sysindexes x 
join sysindexkeys k on k.id = x.id
join syscolumns c on c.id = x.id and k.colid=c.colid
where x.id = object_id('yourtable')
and c.name='yourcolumn'
and x.indid > 1
Run Code Online (Sandbox Code Playgroud)

您可以从k.keyno列中了解索引中键的位置,如果不是1,则只有与索引键顺序中位于其前面的其他列组合时,该列才可能是SARGable.