USE only takes a database name, not a variable. Here's an alternative using an SP that you would create in the master database which would act on the <current> database:use masterset nocount ongo--create an sp to collect db statistics--name should start with 'sp_'create proc sp_junk as select db_name()gocreate table #DBs (rowid int identity(1,1), dbname sysname)insert #DBsselect name from master..sysDatabasesdeclare @rowid int ,@dbname sysname ,@sql nvarchar(100)select @rowid = min(rowid) from #DBswhile @rowid is not nullbegin select @dbname = dbname --command to execute from each database ,@sql = 'exec ' + @dbname + '..sp_junk' from #DBs where rowid = @rowid --collect your stats exec sp_executesql @sql select @rowid = min(rowid) from #DBs where rowid > @rowidendgodrop table #DBsdrop proc sp_junk
Be One with the OptimizerTG