簡體   English   中英

如何以編程方式確定索引列是ASC還是DESC

[英]How do I Programatically Determine if an Index Column is ASC or DESC

以下查詢創建數據庫中所有索引名稱的列表,每個列都是該索引的一部分。 有人能告訴我如何確定該列是否按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  

謝謝! 馬特

sys.index_columns有一列is_descending_key

1 =索引鍵列具有降序排序方向。
0 =索引鍵列具有升序排序方向。
不適用於返回0的列存儲索引。

如果您尚未指定任何排序順序,則默認情況下將其作為ASCENDING 您還可以添加ORDER BY語句來檢查它

創建升序和降序索引

定義索引時,可以指定每列的數據是按升序還是降序存儲。 如果未指定任何方向,則升序是默認值 ,這將保持與早期版本的Microsoft®SQLServer™的兼容性。

SELECT name,is_descending_key
FROM sys.indexes I , sys.index_columns IC
WHERE I.object_id=IC.object_id

此代碼為我們提供了索引和asc / desc情況的名稱。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM