【发布时间】:2013-12-02 19:09:21
【问题描述】:
以下查询创建数据库中所有索引名称的列表,其中包含该索引的每一列。谁能告诉我如何确定该列是按 ASC 还是 DESC 排序的?
SELECT ind.name as index_name ,
t.[name] as table_name ,
col.name as column_name ,
ic.index_column_id as index_column_id
FROM [GDI-193-DEV].sys.indexes ind
INNER JOIN [GDI-193-DEV].sys.index_columns ic
ON ind.object_id = ic.object_id and ind.index_id = ic.index_id
INNER JOIN [GDI-193-DEV].sys.columns col
ON ic.object_id = col.object_id and ic.column_id = col.column_id
INNER JOIN [GDI-193-DEV].sys.tables t
ON ind.object_id = t.object_id
WHERE ind.is_primary_key = 0 AND ind.is_disabled = 0
ORDER BY
t.name, ind.name, ind.index_id, ic.index_column_id
谢谢! 马特
【问题讨论】:
-
将
ASC或DESC添加到ORDER BY子句的末尾。 -
也许您可以检查列第一行的值是 > 还是
-
对于主键,
index_column_id不是在键中列的顺序,而是在表中!请改用key_ordinal。
标签: sql sql-server sql-server-2008 indexing