• Imprimir

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';