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
DECLARE @Database TABLE(Naam VarChar(20))DECLARE @IndexNaam TABLE( DatabaseName VarChar(Max), TableName VarChar(Max), IndexName VarChar(Max), IndexId Int)DECLARE @TableCount IntDECLARE @SqlCmd VarChar(Max)INSERT @DataBase(Naam) SELECT name FROM sys.databases D WHERE D.name like 'McBam%'SELECT * FROM @DataBaseSELECT @TableCount = (SELECT COUNT(*) FROM @DataBase)Print @TableCountSET @SqlCmd = '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
DECLARE @Database TABLE(Naam VarChar(20))DECLARE @IndexNaam TABLE( DatabaseName VarChar(Max), TableName VarChar(Max), IndexName VarChar(Max), IndexId Int)DECLARE @TableCount IntDECLARE @SqlCmd nVarChar(Max)INSERT @DataBase(Naam) SELECT name FROM sys.databases D WHERE D.name like 'McBam%'SELECT * FROM @DataBaseSELECT @TableCount = (SELECT COUNT(*) FROM @DataBase)Print @TableCountSET @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 @SqlCmdSELECT TableName, IndexName, Count(*) as Aantal FROM @DataBase Inner Join @IndexNaam on DatabaseName = Naam Group by TableName, IndexName Having Count(*) = @TableCount Order By TableName, IndexName
DECLARE @Database TABLE(Naam VarChar(20))DECLARE @IndexNaam TABLE( DatabaseName VarChar(Max), Database_Id Int, TableName VarChar(Max), IndexName VarChar(Max), IndexId Int)DECLARE @TableCount IntDECLARE @SqlCmd nVarChar(Max)INSERT @DataBase(Naam) SELECT name FROM sys.databases D WHERE D.name like 'McBam%'SELECT * FROM @DataBaseSELECT @TableCount = (SELECT COUNT(*) FROM @DataBase)Print @TableCountSET @SqlCmd = 'USE ?;SELECT DB_NAME() AS DATABASENAME, OBJECT_NAME(B.OBJECT_ID) AS TABLENAME, B.NAME AS INDEXNAME, B.INDEX_ID FROM SYS.DM_DB_INDEX_USAGE_STATS C WHERE B.OBJECT_ID = C.OBJECT_ID AND B.INDEX_ID = C.INDEX_IDINNER JOIN @Database D ON C.database_id = D.database_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 @SqlCmdSELECT TableName, IndexName, Count(*) as Aantal FROM @DataBase Inner Join @IndexNaam on DatabaseName = Naam Group by TableName, IndexName Having Count(*) = @TableCount Order By TableName, IndexName