align=right Valign=top><font face=tahoma size=2 color=#FFFFFF><b>Livre</b></font></td>' + '</tr>' declare cp0 cursor local fast_forward read_only for select name from master..sysdatabases /* ESPECIFIQUE AQUI AS EXCECOES PARA CALCULO */ where name not in ('master', 'tempdb', 'model', 'msdb') order by name open cp0 while 0 =0 begin fetch next from cp0 into @vbase if @@fetch_status <> 0 break truncate table #tmpTabelas insert into #retorno (texto) select '<tr bgcolor=#900000><td colspan=6><font face=tahoma size=2 color=#ffffff>DB: <b>' + rtrim(@vbase) + '</b></td></tr>' select @sql = ' insert into #tmpTabelas (tabela) select name from [' + rtrim(@vbase) + ']..sysobjects where type = ''U'' ' exec(@sql) declare cp1 cursor local fast_forward read_only for select tabela from #tmpTabelas order by 1 open cp1 while 1 = 1 begin fetch next from cp1 into @vname if @@fetch_status <> 0 break select @sql = ' insert into #tmpTamTabela (name, rows, reserved, data, index_size, unused) exec [' + rtrim(@vbase) + ']..sp_spaceused ''' + rtrim(@vname) + ''' update #tmpTamTabela set db = ''' + rtrim(@vbase) + ''' where db is null ' exec(@sql) end close cp1 deallocate cp1 insert into #retorno (texto) /* altere aqui a quantidade de tabelas a ser exibida no relatorio */ select top 10 '<tr>' + ' <td align=left Valign=top><font face=tahoma size=1>' + rtrim(name) + '</font></td>' + ' <td align=right Valign=top><font face=tahoma size=1>' + rtrim(rows) + '</font></td>' + ' <td align=right Valign=top><font face=tahoma size=1>' + rtrim(reserved) + '</font></td>' + ' <td align=right Valign=top><font face=tahoma size=1>' + rtrim(data) + '</font></td>' + ' <td align=right Valign=top><font face=tahoma size=1>' + rtrim(index_size) + '</font></td>' + ' <td align=right Valign=top><font face=tahoma size=1>' + rtrim(unused) + '</font></td>' + '</tr>' from #tmpTamTabela where db = @vbase order by convert(int, replace(reserved, ' KB','')) desc end close cp0 deallocate cp0 insert into #retorno (texto) select '</table>' declare cp2 cursor local fast_forward read_only for select texto from #retorno order by ordem open cp2 while 1 = 1 begin fetch next from cp2 into @vtexto if @@fetch_status <> 0 break select @email = isnull(@email, '') + rtrim(@vtexto) end close cp2 deallocate cp2 set @assunto = 'Relatorio tabelas - ' + rtrim(@@SERVERNAME) exec msdb.dbo.sp_send_dbmail @profile_name = 'atlanta', @recipients = 'fbcores@gmail.com', @copy_recipients = 'fabiano.cores@nms.com.br', @blind_copy_recipients = '', @subject = @assunto, @body = @email, @body_format = 'HTML' Nao vou entrar em detalhes em como se utiliza a funcao de email ou como se cria uma JOB no SQL. Creio que sejam assuntos para outro artigo. Existem muito conteudo explicativo sobre como ativar e utilizar o DATABASE MAIL e o SQL SERVER AGENT, basta dar uma procurada na internet. Mas se tiverem dificuldades em concluir essa configuracao, me avisem pra eu saber se e necessario ou nao fazer um artigo especifico para ensinar como utilizar essas ferramentas.A imagem abaixo e a visualizacao do relatorio no meu tablet. No celular tambem ficou bem legal: O segundo exemplo, e uma versao simplificada do procedimento, que nao trata a formatacao de texto nem nada parecido. E uma procedure para ser executada manualmente sempre que o administardor quiser consultar os tamanhos das tabelas:-- exec sp_espacotabelabancocreate proc sp_espacotabelabancoas /* Fabiano Cores 02.01.2013 http://sqlburger.blogspot.com Segunda versao do calculo do tamanho das tabelas, que trata todos