检查表列上是否存在非聚簇索引
答
时退房“的sysindexes”的观点......我在Mac上,所以我现在无法给你确切的,经测试查询..
SELECT * FROM sysindexes
答
检查“类型”列(值<> 1,意味着不用SYS.INDEXES表 type_desc的集群)指定CLUSTERED,NONCLUSTERED或堆
答
你看它在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则列可能是唯一的优化搜索,如果有是在它前面的索引键顺序等栏目合并。
+0
我从主人更改为mydb。我看到很多奇怪的名字和列名。我不明白这一点。我只想看看名为“Person”或“ID”的列是否已被索引。我该怎么做 ? – Steam 2013-12-21 01:21:29
嘿,谁编辑我的答案?它是MS SQL Server 2000,没有sys.indexes! – 2013-01-19 08:32:29