16 Stimmen

Wie können wir überprüfen, ob die Tabelle einen Index hat oder nicht?

Wie können wir überprüfen, dass Tabelle haben Index oder nicht? wenn haben, wie zu finden, dass Index für eine bestimmte Spalte für eine Tabelle?

Grußworte, kumar

22voto

Daniel Renshaw Punkte 32893

In SQL Server Management Studio können Sie in der Struktur zu der Tabelle navigieren, die Sie interessiert, und den Knoten Indizes öffnen. Ein Doppelklick auf einen beliebigen Index in diesem Knoten öffnet dann den Eigenschaftsdialog, der anzeigt, welche Spalten im Index enthalten sind.

Wenn Sie T-SQL verwenden möchten, könnte dies hilfreich sein:

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

0voto

Gary Punkte 1

Die Reihenfolge nach Spaltennamen ist falsch, Sie müssen nach der Position im Index sortieren, also sollte die Order-By-Klausel tabname, indname und sys.index_columns.index_column_id lauten...

-1voto

Amit Rai Sharma Punkte 3777

Versuchen Sie

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X