2010-04-29 14 views

Respuesta

12

En SQL Server Management Studio se puede navegar por el árbol a la mesa que le interesa y abra el nodo de índices. Al hacer doble clic en cualquier índice en ese nodo, se abrirá el cuadro de diálogo de propiedades que mostrará qué columnas están incluidas en el índice.

Si desea utilizar T-SQL, esto podría ayudar:

SELECT 
    sys.tables.name, 
    sys.indexes.name, 
    sys.columns.name 
FROM sys.indexes 
    INNER JOIN sys.tables ON sys.tables.object_id = sys.indexes.object_id 
    INNER JOIN sys.index_columns ON sys.index_columns.index_id = sys.indexes.index_id 
     AND sys.index_columns.object_id = sys.tables.object_id 
    INNER JOIN sys.columns ON sys.columns.column_id = sys.index_columns.column_id 
     AND sys.columns.object_id = sys.tables.object_id 
WHERE sys.tables.name = 'TABLE NAME HERE' 
ORDER BY 
    sys.tables.name, 
    sys.indexes.name, 
    sys.columns.name 
+0

thanx u daniel. – kumar

+0

+1, necesita algo como 'WHERE sys.tables.name = 'YourTableName'' –

+0

Gracias, he agregado la cláusula WHERE –

0

Trate

select object_name(object_id),* from sys.indexes 
where object_name(object_id) = 'your table name' 
0

pedido por nombre de columna está mal, tiene que pedir por la posición en el índice , por lo que la cláusula order by debe ser tabname, indname y sys.index_columns.index_column_id ...

Cuestiones relacionadas