2010-04-29 18 views

Odpowiedz

12

W SQL Server Management Studio można poruszać się w dół drzewa do stołu, który Cię interesuje i otworzyć węzeł indeksów. Podwójne kliknięcie dowolnego indeksu w tym węźle otworzy okno dialogowe właściwości, które pokaże, które kolumny zostaną uwzględnione w indeksie.

Jeśli chcesz użyć T-SQL, to może pomóc:

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, potrzebujesz czegoś takiego jak "WHERE sys.tables.name =" YourTableName'' –

+0

Dzięki, dodałem klauzulę WHERE –

0

Spróbuj

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

zamawianie przez nazwę kolumny jest źle, trzeba zamówić przez pozycję w indeksie , więc zamówienie klauzula powinno być tabname, indname i sys.index_columns.index_column_id ...

Powiązane problemy