declare @dbNames nvarchar(max) set @dbnames = 'VEPROMS_%' declare @CommandLine nvarchar(max) set quoted_identifier off -- Allows single quotes to be used in the query' set @CommandLine = " Select sum(case when type = 0 then 1 else 0 end) Procedures ,sum(case when type between 10000 and 19999 then 1 else 0 end) Sections ,sum(case when type >= 20000 then 1 else 0 end) Steps from ~Contents " set quoted_identifier on declare @CommandLines nvarchar(max) select @CommandLines = Coalesce(@CommandLines + ' UNION' + char(10), '') + 'select ''' + Name + ''' DBName, * from ( ' + Replace(Replace(@CommandLine,'~','{Name}.dbo.'),'{Name}',Name) + ') T1' from Sys.Databases where name like @dbNames and name not like '%test' Set @CommandLines = 'Select * from ( ' +@CommandLines + ') t2 '--where HowMany > 0' print @CommandLines EXEC SP_EXECUTESQL @CommandLines