Предполагая, что у вас 2005 или более поздняя версия, вы можете просто запросить sys.indexes
для всей необходимой вам информации (как они делают в части IF NOT EXISTS
запроса).
Если вы просто ищете все индексы в базе данных, просто извлеките все из этой таблицы в эту базу данных. Если вы ищете индексы, которые соответствуют определенным критериям , вот список полей в sys.indexes
, которые вы можете использовать для фильтрации. Таблица sys.index_columns
содержит также все связанные столбцы для каждого индекса.
Используя это, вы сможете получить всю необходимую вам информацию об индексах в вашей базе данных.
В этом сообщении в блоге есть довольно хороший фрагмент SQL-кода, который использует эти приемы для опроса индексов в базе данных, и вы можете использовать его, чтобы делать то, что вы хотите.