• Sorry, don't quite know how :hehe:

    Here's something that sort of does what I want:

    DECLARE @Database TABLE(Naam VarChar(20))

    DECLARE@IndexNaamTABLE(

    DatabaseNameVarChar(Max)

    ,TableNameVarChar(Max)

    ,IndexNameVarChar(Max)

    ,IndexIdInt

    )

    DECLARE@TableCountInt

    DECLARE@SqlCmdnVarChar(Max)

    INSERT @DataBase(Naam)

    SELECT name FROM sys.databases D

    WHERE D.name like 'McBam%'

    SELECT * FROM @DataBase

    SELECT @TableCount = (SELECT COUNT(*) FROM @DataBase)

    Print @TableCount

    SET@SqlCmd = 'USE ?;SELECT DB_NAME() AS DATABASENAME,

    OBJECT_NAME(B.OBJECT_ID) AS TABLENAME,

    B.NAME AS INDEXNAME,

    B.INDEX_ID

    FROM SYS.OBJECTS A

    INNER JOIN SYS.INDEXES B

    ON A.OBJECT_ID = B.OBJECT_ID

    WHERE NOT EXISTS (SELECT *

    FROM SYS.DM_DB_INDEX_USAGE_STATS C

    WHERE B.OBJECT_ID = C.OBJECT_ID

    AND B.INDEX_ID = C.INDEX_ID)

    AND A.TYPE <> '''+'S'+'''

    AND B.NAME > ''''

    AND B.NAME not like '''+'%rowid%'+'''

    ORDER BY 1, 2, 3 '

    INSERT @IndexNaam (DatabaseName, TableName, IndexName, IndexId)

    EXEC sp_MSforeachdb @SqlCmd

    SELECT TableName, IndexName, Count(*) as Aantal FROM @DataBase

    Inner Join @IndexNaam on DatabaseName = Naam

    Group by TableName, IndexName

    Having Count(*) = @TableCount

    Order By TableName, IndexName

    But it puts ALL unused indexes in my Variable table because it questions ALL databases.

    Can I restrict the use of sp_MSforeachdb to the tables called 'McBam%' ??

    Thanks for any insight and/or tips.

    Cees