Jak możemy sprawdzić, czy tabela ma indeks, czy nie? czy mogę znaleźć ten indeks dla konkretnej kolumny dla tabeli?Jak możemy sprawdzić, czy tabela ma indeks, czy nie?
Pozdrawiam, Kumar
Jak możemy sprawdzić, czy tabela ma indeks, czy nie? czy mogę znaleźć ten indeks dla konkretnej kolumny dla tabeli?Jak możemy sprawdzić, czy tabela ma indeks, czy nie?
Pozdrawiam, Kumar
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
Spróbuj
select object_name(object_id),* from sys.indexes
where object_name(object_id) = 'your table name'
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 ...
thanx u daniel. – kumar
+1, potrzebujesz czegoś takiego jak "WHERE sys.tables.name =" YourTableName'' –
Dzięki, dodałem klauzulę WHERE –