• When trying to bring your functions to 'life', I changed the proc_FilltblIndexUsageInfo

    ALTER Proc [dbo].[proc_FilltblIndexUsageInfo]

    AS

    Begin

    Truncate table tblIndexUsageInfo

    insert into tblIndexUsageInfo

    select db_name(db_id()) DbName,

    so.name as 'TableName',

    ISNULL(si.name,'No Index') as IndexName,

    si.index_id,

    Case When is_primary_key=1 then 'Primary Key Constraint'

    Else 'Index' End ConstraintType,

    si.type_desc,

    dbo.Uf_GetIndexCol(si.index_id,so.object_id,0) As IndexKeyColumn,

    dbo.Uf_GetIndexCol(si.index_id,so.object_id,1) As IncludedCols,

    spi.user_seeks,spi.user_scans,spi.user_lookups,spi.user_updates,

    (user_seeks+user_scans+user_lookups+user_updates) as 'IndexUsage ',

    dbo.Uf_GetIndexSize(si.index_id,so.object_id) 'IndexSizeKB',

    Cast(

    (user_seeks+user_scans+user_lookups+user_updates)/

    dbo.Uf_GetIndexSize(si.index_id,so.object_id) As decimal(10,2))

    As IndexUsagetoSizeRatio

    from sys.objects so inner join sys.indexes si

    on so.object_id=si.Object_id

    inner join sys.dm_db_index_usage_stats spi

    on spi.Object_id=so.Object_id

    and si.index_id=spi.index_id

    and spi.database_id=db_id()

    where so.type='u'

    END