RESULTADO QUERY NO CORPO DO EMAIL.
-- Para facilitar vamos dividir a pagina html em 3 partes Incio Meio e Fim.
DECLARE @html_incio NVARCHAR(MAX) ;set @html_incio ='';
DECLARE @html_meio NVARCHAR(MAX) ;set @html_meio ='';
DECLARE @html_fim NVARCHAR(MAX) ;set @html_fim ='';
SET @html_incio ='<html><body><H3>Relatorio </H3>
<table border = 1>
<tr>
<th>servidor</th>
<th>porcesso</th>
<th>data</th>
<th>rodou</th>
<th>hora_inicio</th>
<th>hora_fim</th>
</tr>
';
-- Iremos agora pegar o Meio a Pagina Web.
-- inicio declaração variaves referentes aos campos da tabela
DECLARE @servidor varchar(25);
DECLARE @porcesso varchar(25);
DECLARE @data varchar(25);
DECLARE @rodou varchar(25);
DECLARE @hora_inicio varchar(25);
DECLARE @hora_fim varchar(25);
-- fim declaração variaves
DECLARE lista CURSOR SCROLL FOR SELECT servidor
porcesso
data
rodou
hora_inicio
hora_fim
FROM tabela WHERE servidor = 'Meu Servidor' AND porcesso = '0000007';
OPEN lista
-----------------------------------------------
-- Vai outra dica, podemos trabalhar todos os campos declarados no SELECT
-- Mas muito cuidado com a ordem ne....
--------------------------------------------------
-- Primeiro registro
FETCH FIRST FROM lista INTO @servidor,@porcesso,@data,@rodou,@hora_inicio,@hora_fim
WHILE @@FETCH_STATUS = 0
BEGIN
-- Aqui vou colocando os dados nas celulas da tabelas
SET @html_meio =@html_meio+'<tr>
'
SET @html_meio =@html_meio+'<td>'+@servidor+'</td>';
SET @html_meio =@html_meio+'<td>'+@porcesso+'</td>';
-----------------------------------------------
-- Vai outra dica, Temos que ter cuidado quando trabalhamos com data
-- Aqui se a data estiver em branco posso ter problemas assim verifico antes se ela é nula.
-- Este problema pode não apresentar erro no MS Server Management Stidio
-- E ai voce vai pensar que o treco funcionou so que não....
--------------------------------------------------
IF (@data IS NULL)
SET @html_meio =@html_meio+'<td> Nao Teve Processos </td>';
ELSE
SET @html_meio =@html_meio+'<td>'+CONVERT(varchar(25),@data,103)+'</td>';
;
SET @html_meio =@html_meio+'<td>'+@rodou+'</td>';
IF (@hora_inicio IS NULL)
SET @html_meio =@html_meio+'<td> . </td>';
ELSE
SET @html_meio =@html_meio+'<td>'+CONVERT(varchar(25),@hora_inicio,103)+'</td>';
;
IF (@hora_fim IS NULL)
SET @html_meio =@html_meio+'<td> . </td>';
ELSE
SET @html_meio =@html_meio+'<td>'+CONVERT(varchar(25),@hora_fim,103)+'</td>';
;
SET @html_meio =@html_meio+'
</tr>
';
-- Próximo registro
FETCH NEXT FROM lista INTO @servidor,@porcesso,@data,@rodou,@hora_inicio,@hora_fim
END
-- print @html_meio;
SET @html_fim ='
</table>
</body>
</html>
'
SET @html_incio= @html_incio+@html_meio+@html_fim
--print @html_incio
CLOSE lista
DEALLOCATE lista
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'Default Profile <<nome do profile >>', -- Profile padrao para envio de email neste servidor.
@recipients = 'O endereço de e-mail address está sendo protegido de spambots. Você precisa ativar o JavaScript enabled para vê-lo.;O endereço de e-mail address está sendo protegido de spambots. Você precisa ativar o JavaScript enabled para vê-lo.;O endereço de e-mail address está sendo protegido de spambots. Você precisa ativar o JavaScript enabled para vê-lo.',
-- Lembrando se quiser que o resultado da query vai como anexo e não tenha tando trabalho...
-- @query = 'SELECT * FROM tabela WHERE servidor = ''servidor01''',
@subject = 'Relatorio',
@body = @html_incio,
@body_format = 'HTML';
-- o @attach_query_result_as_file esta comentado pq. tivemos o maior trabalho para mandar o resultado em html no corpo do email.
-- @attach_query_result_as_file = 1 ;
UMA DICA CASO O ANEXO FIQUE GRANDE E TU RECEBA UM ERRO
EXECUTE msdb.dbo.sysmail_configure_sp 'MaxFileSize','10000000';