declare @table table (
rows int,tablename nvarchar(100));declare @sql NVARCHAR(MAX)declare @rows int; insert into @tableselect ROW_NUMBER() over (order by name),name from sysobjects where xtype = 'u' select @rows =MAX(rows) from @tabledeclare @i intset @i=1while @i<@rows begindeclare @tableName nvarchar(100)select @tableName = tablename from @table WHERE rows = @iif @i =1
beginset @sql =N' select '''+@tableName+''' tablaName, count(1) selectCount from '+@tableName;endelsebeginset @sql +=N' union select '''+@tableName+''',count(1) from '+@tableName;end set @i=@i+1end--exec (@sql)--print @sqlexec('with cte as ('+@sql+')select * from cte where selectCount > 0')