Liste de tous les index et colonnes d’index dans une base de données SQL Server
Liste de tous les index et colonnes d'index dans une base de données SQL Server
Re: Liste de tous les index et colonnes d'index dans une base de données SQL Server
Il existe deux vues de catalogue “sys” que vous pouvez consulter : sys.indexes et sys.index_columns.
Celles-ci vous donneront à peu près toutes les informations que vous pourriez vouloir sur les index et leurs colonnes.
MODIFICATION : Cette requête se rapproche pas mal de ce que vous recherchez :
SELECT
TableName = t.name,
IndexName = ind.name,
IndexId = ind.index_id,
ColumnId = ic.index_column_id,
ColumnName = col.name,
ind.*,
ic.*,
col.*
FROM
sys.indexes ind
INNER JOIN
sys.index_columns ic ON ind.object_id = ic.object_id and ind.index_id = ic.index_id
INNER JOIN
sys.columns col ON ic.object_id = col.object_id and ic.column_id = col.column_id
INNER JOIN
sys.tables t ON ind.object_id = t.object_id
WHERE
ind.is_primary_key = 0
AND ind.is_unique = 0
AND ind.is_unique_constraint = 0
AND t.is_ms_shipped = 0
ORDER BY
t.name, ind.name, ind.index_id, ic.is_included_column, ic.key_ordinal;