根据列/表名选择索引

问题描述:

是否有系统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 

马克

您可以随时通过查询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

需要四个系统的观点: