Как мы можем проверить, что таблица имеет индекс или нет?

Как мы можем проверить, что таблица имеет индекс или нет? если имеют, как найти что индекс для конкретного столбца для таблицы?

С уважением, kumar

13
задан AdaTheDev 29 April 2010 в 09:03
поделиться

3 ответа

Попробуйте

select object_name(object_id),* from sys.indexes 
where object_name(object_id) = 'your table name'
-1
ответ дан 1 December 2019 в 23:47
поделиться

В SQL Server Management Studio вы можете перейти вниз по дереву к интересующей вас таблице и открыть узел индексов. Двойной щелчок по любому индексу в этом узле откроет диалоговое окно свойств, в котором будет показано, какие столбцы включены в индекс.

Если вы хотите использовать T-SQL, это может помочь:

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
18
ответ дан 1 December 2019 в 23:47
поделиться

упорядочивание по имени столбца неверно, вам необходимо упорядочить его по позиции в индексе, поэтому в предложении order by должно быть имя вкладки, имя индекса и sys.index_columns.index_column_id ...

0
ответ дан 1 December 2019 в 23:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: