On a very-large database I wanted to check each filegroup for corruption with real-time feedback. That is, I did not want to just set a loop going and wait indefinately for the results. Also I did not want info-messages.
The semi-automatic query I wrote (below) runs CheckFileGroup against the smallest filegroup and stops. Then when manually re-run (in the same SSMS session) checks the next smallest filegroup etc.
Then at the end of the day I would know where it was upto.
-- checkfilegroups_vldb.sql -- use current (snapshot?) -- create table of filegroup names and sizes begin try select fg.name, sum(df.size/128) mb into #tables from sys.filegroups fg join sys.database_files df on fg.data_space_id = df.data_space_id group by fg.name order by mb, name select '[F5] to Start' end try --check each filegroup starting with smallest begin catch select * from #tables declare @sql varchar(100) select top 1 @sql = 'dbcc checkfilegroup (''' + name + ''') with all_errormsgs, no_infomsgs;' from #tables order by mb, name select(@sql) exec(@sql) delete from #tables where name = (select top 1 name from #tables order by mb, name) if (select count(*) from #tables) = 0 begin drop table #tables select 'Complete' end end catch