2009-07-13 129 views
0

是否有系統SP或dmv允許我根據列和表名選擇索引在我的數據庫中?根據列/表名選擇索引

我想要做的是刪除索引基於字符串數據類型的列,因爲我正在改變我的排序規則設置的過程。

謝謝。

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 

馬克

回答

3

您可以隨時通過查詢SYS.INDEXES和sys.index_columns意見確定給定列和/或表的索引

sys.indexes,sys.index_columns,sys.columns和sys.objects。 sys.objects包含表sys.columns的名稱。包含表的object_id和列的類型,sys.index_columns包含存在於索引和索引id中的列id,sys.indexes包含索引ID。

編輯:是的,sys.objects是沒有必要的。坦克@mark。

+0

輝煌,謝謝! – super9 2009-07-13 15:49:07

1

需要四個系統的觀點: