SQL查詢表中的有那些索引

方法1. 使用系統表數據庫

-- 查詢一個表中的索引及索引列
USE AdventureWorks2008
GO
SELECT  indexname = a.name , tablename = c. name , indexcolumns = d .name , a .indid
FROM    sysindexes a JOIN sysindexkeys b ON a .id = b .id  AND a .indid = b.indid
        JOIN sysobjects c ON b .id = c .id
        JOIN syscolumns d ON b .id = d .id  AND b .colid = d .colid
WHERE   a .indid NOT IN ( 0 , 255 )  
-- and   c.xtype='U'   and   c.status>0 -- 查全部用戶表
AND c .name = 'DatabaseLog' --查指定表
ORDER BY c. name ,
        a.name ,
        d.name

方法2. 使用系統存儲過程app

sp_helpindex :報告有關表或視圖上索引的信息。ide

/*  sp_helpindex [ @objname = ] 'name'
參數 :[@objname =] 'name'
是當前數據庫中表或視圖的名稱。name 的數據類型爲 nvarchar(776),沒有默認值。 */

use DB_NAME
go

sp_helpindex 'Tablename'

返回代碼值
0(成功)或 1(失敗)
結果集:spa

列名code

數據類型orm

描述xml

index_nameblog

sysname索引

索引名。ip

index_description

varchar(210)

索引描述。

index_keys

nvarchar(2078)

表或視圖列,在這些列上構造索引。

被降序索引的列將在結果集中列出,該列的名稱後面帶有一個減號 (-),當列出被升序索引的列(這是默認狀況)時,只帶有該列的名稱。
註釋
若是已經用 UPDATE STATISTICS 的 NORECOMPUTE 選項設置了索引,那麼在 sp_helpindex 的結果集中會顯示這個信息。

相關文章
相關標籤/搜索