sql >> データベース >  >> RDS >> Sqlserver

SQLServerDBのすべてのインデックスとインデックス列のリスト

    参照できる「sys」カタログビューは2つあります。sys.indexes およびsys.index_columns

    これらは、インデックスとその列について必要になる可能性のあるほぼすべての情報を提供します。

    編集:このクエリはあなたが探しているものにかなり近づいています:

    SELECT 
         TableName = t.name,
         IndexName = ind.name,
         IndexId = ind.index_id,
         ColumnId = ic.index_column_id,
         ColumnName = col.name,
         ind.*,
         ic.*,
         col.* 
    FROM 
         sys.indexes ind 
    INNER JOIN 
         sys.index_columns ic ON  ind.object_id = ic.object_id and ind.index_id = ic.index_id 
    INNER JOIN 
         sys.columns col ON ic.object_id = col.object_id and ic.column_id = col.column_id 
    INNER JOIN 
         sys.tables t ON ind.object_id = t.object_id 
    WHERE 
         ind.is_primary_key = 0 
         AND ind.is_unique = 0 
         AND ind.is_unique_constraint = 0 
         AND t.is_ms_shipped = 0 
    ORDER BY 
         t.name, ind.name, ind.index_id, ic.is_included_column, ic.key_ordinal;
    


    1. GentooでのMySQLリレーショナルデータベースの使用

    2. null値を置き換えながら、2つの行を1つにマージします

    3. SQLの欠落データテーブルにCreatedByとCreatedOnを挿入します

    4. MySQLクイックヒント:DAYOFWEEK関数の使用