在SQL Server 2000中,如何检查表的单个列上是否存在非聚集索引?
答案 0 :(得分:5)
您可以在sysindexes和sysindexkeys中查找。您还可以使用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
您可以从k.keyno列中了解索引中键的位置,如果不是1,则只有与索引键顺序中前面的其他列组合时,该列才可能是SARGable。
答案 1 :(得分:1)
查看“sysindexes”视图...我现在在Mac上,所以我无法给你准确的,经过测试的查询..
SELECT * FROM sysindexes
答案 2 :(得分:0)
检查sys.indexes表的“type”列(对于值<> 1,表示不是群集) type_desc指定CLUSTERED,NONCLUSTERED或HEAP