Tuesday, 4 August 2026

SQLDBA- Query to get Index Name, Key Columns, Included Columns, and Filter (WHERE clause) columns for filtered indexes:

 Use below query to get Index Name, Key Columns, Included Columns, and Filter (WHERE clause) columns for filtered indexes:

Scenario, if  dev tea m will  complaint  about the index not  deployed or if we want know which columns are i key  columns  and which  columns are included columns.  In this case below will help us to get the those details. 

SELECT

    SCHEMA_NAME(t.schema_id) AS SchemaName,

    t.name AS TableName,

    i.name AS IndexName,

    i.type_desc,

    i.is_unique,

    i.has_filter,

    i.filter_definition AS WhereClause,


    KeyColumns =

    STUFF((

        SELECT ', ' + c.name

        FROM sys.index_columns ic

        JOIN sys.columns c

            ON c.object_id = ic.object_id

           AND c.column_id = ic.column_id

        WHERE ic.object_id = i.object_id

          AND ic.index_id = i.index_id

          AND ic.is_included_column = 0

        ORDER BY ic.key_ordinal

        FOR XML PATH(''), TYPE

    ).value('.', 'nvarchar(max)'),1,2,''),


    IncludedColumns =

    STUFF((

        SELECT ', ' + c.name

        FROM sys.index_columns ic

        JOIN sys.columns c

            ON c.object_id = ic.object_id

           AND c.column_id = ic.column_id

        WHERE ic.object_id = i.object_id

          AND ic.index_id = i.index_id

          AND ic.is_included_column = 1

        ORDER BY c.name

        FOR XML PATH(''), TYPE

    ).value('.', 'nvarchar(max)'),1,2,'')


FROM sys.indexes i

JOIN sys.tables t

    ON i.object_id = t.object_id

WHERE i.index_id > 0

  AND  i.name IN ('ix_uq_contract_jtt_component_contract_jtt_id_component_master_id','ix_uq_customer_bundle_component')

ORDER BY SchemaName, TableName, IndexName



SQLDBA- Query to get Index Name, Key Columns, Included Columns, and Filter (WHERE clause) columns for filtered indexes:

  Use below query to get Index Name, Key Columns, Included Columns, and Filter (WHERE clause) columns for filtered indexes: Scenario, if  d...