2009-07-13 22 views
0

カラムやテーブル名に基づいてDB内のインデックスを選択できるシステムSPまたはdmvはありますか?カラム/テーブル名に基づいてインデックスを選択する

私がしようとしているのは、照合設定を変更する過程で、文字列データ型の列に基づいてインデックスを削除することです。

ありがとうございました。あなたは4つのシステム・ビューを必要とマルク・

答えて

3

あなたはいつもsys.indexesとsys.index_columnsビューを照会することにより、所定の列および/またはテーブルのインデックスを決定することができ

sys.indexes、sys.index_columns、sys.columnsおよびsys.objects。 sys.objectsには、テーブルsys.columnsの名前が含まれています。 sys_index_columnsには、インデックスとインデックスIDに存在する列idが含まれ、sys.indexesにはインデックスIDが含まれます。

編集:はい、sys.objectsは必要ありません。タンク@マーク。

+0

よろしくお願い致します。 – super9

1

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 

関連する問題