2010-04-29 32 views

回答

12

在SQL Server Management Studio中你可以向下导航树以你感兴趣的表,然后打开索引节点。双击该节点中的任何索引将打开属性对话框,该对话框将显示索引中包含哪些列。

如果你想使用T-SQL,这可能帮助:

SELECT 
    sys.tables.name, 
    sys.indexes.name, 
    sys.columns.name 
FROM sys.indexes 
    INNER JOIN sys.tables ON sys.tables.object_id = sys.indexes.object_id 
    INNER JOIN sys.index_columns ON sys.index_columns.index_id = sys.indexes.index_id 
     AND sys.index_columns.object_id = sys.tables.object_id 
    INNER JOIN sys.columns ON sys.columns.column_id = sys.index_columns.column_id 
     AND sys.columns.object_id = sys.tables.object_id 
WHERE sys.tables.name = 'TABLE NAME HERE' 
ORDER BY 
    sys.tables.name, 
    sys.indexes.name, 
    sys.columns.name 
+0

thanx u daniel。 – kumar 2010-04-29 09:07:09

+0

+1,需要像'WHERE sys.tables.name ='YourTableName'' – 2010-04-29 13:27:57

+0

谢谢,我已经添加了WHERE子句 – 2010-04-29 13:59:40

0

尝试

select object_name(object_id),* from sys.indexes 
where object_name(object_id) = 'your table name' 
0

排序按列名是错误的,你需要在索引的位置命令,所以order by子句应该是tabname,indname和sys.index_columns.index_column_id ...

相关问题