2009-07-13 7 views
0

Есть ли система SP или dmv, которая позволяет мне выбирать индексы в моей базе данных на основе столбцов и имен таблиц?Выбор индексов на основе имен столбцов/таблиц

То, что я пытаюсь сделать, это сбросить индексы на основе столбцов с строковыми типами данных, так как я в процессе изменения настроек сортировки.

Спасибо.

ответ

3

Вы всегда можете определить показатели для данного столбца и/или таблицы, запрашивая sys.indexes и sys.index_columns просмотров:

SELECT 
    i.Name 'Index Name', 
    OBJECT_NAME(i.object_ID) 'Table Name', 
    c.Name 'Column Name' 
FROM 
    sys.indexes i 
INNER JOIN 
    sys.index_columns ic ON i.index_id = ic.index_id AND i.object_id = ic.object_id 
INNER JOIN 
    sys.columns c ON ic.column_id = c.column_id AND ic.object_id = c.object_id 
WHERE 
    c.name = 'Index column name'  -- this for a column name 
    -- OBJECT_NAME(i.OBJECT_ID) = 'Table Name' -- this for table name 

Марк

+0

блестящий, спасибо! – super9

1

вам нужно четыре вида системы:

sys.indexes, sys.index_columns, sys.columns и sys.objects. sys.objects содержит имя таблицы, sys.columns. содержит object_id таблицы и типа столбца, sys.index_columns содержит идентификаторы столбцов, которые присутствуют в индексах и идентификаторе индекса, sys.indexes содержит идентификатор индекса.

Редактировать: Да, sys.объекты не нужны. Танки @mark.

Смежные вопросы