Query to check index on a table

后端 未结 10 1715
南方客
南方客 2020-12-13 06:06

I need a query to see if a table already has any indexes on it.

10条回答
  •  借酒劲吻你
    2020-12-13 06:23

    Created a stored procedure to list indexes for a table in database in SQL Server

    create procedure _ListIndexes(@tableName nvarchar(200))
    as
    begin
    /*
    exec _ListIndexes ''
    */
    SELECT DB_NAME(DB_ID()) as DBName,SCH.name + '.' + TBL.name AS TableName,IDX.name as IndexName, IDX.type_desc AS IndexType,COL.Name as ColumnName,IC.*
        FROM sys.tables AS TBL 
             INNER JOIN sys.schemas AS SCH ON TBL.schema_id = SCH.schema_id 
             INNER JOIN sys.indexes AS IDX ON TBL.object_id = IDX.object_id 
             INNER JOIN sys.index_columns IC ON  IDX.object_id = IC.object_id and IDX.index_id = IC.index_id 
             INNER JOIN sys.columns COL ON ic.object_id = COL.object_id and IC.column_id = COL.column_id 
            where TBL.name = @tableName
        ORDER BY TableName,IDX.name
    
    end
    

提交回复
热议问题