Usuário com melhor resposta
Configuração de Job Avançado

Pergunta
-
Senhores,
Tenho uma duvida tenho uma seguinte query, onde eu pego as minhas bases sincronizadas.
SELECT
DB.NAME , MIRRORING_STATE_DESC
FROM SYS.DATABASE_MIRRORING DM
INNER JOIN SYS.SYSDATABASES DB ON DM.DATABASE_ID = DB.DBID
WHERE MIRRORING_STATE_DESC = 'SYNCHRONIZED'Quero colocar isso num job para executar a cada 4 horas, até ai blz! Minha duvida é eu gostaria que a informação viesse no email formatado bonitinho... rs
Exemplo:
+------------------------------------------------------------+
BASES SINCRONIZADAS
+------------------------------------------------------------+
DATA ATUAL
+------------------------------------------------------------+
E O resultado do select:
TESTE SYNCHRONIZED
TESTE 2 SYNCHRONIZEDqueria que viesse desta forma mesmo um por linha e com cabeçalho e data atual.
Respostas
-
o Email que recebo vem como no print e eu quero uma formatação diferente
Renata,
Você já tentou aplicar a execução de outras consultas para definir esta estrutura como você gostaria?
Segue abaixo um script T-SQL para você adaptar à sua necessidade:
-- Apenas para demonstrar a "idéia" - use apenas no SSMS EXEC('SET NOCOUNT ON; SELECT ''BANCOS SINCRONIZADOS''; SELECT ''PESQUISA'' AS NAME, ''SYNCRONIZED'' AS MIRRORING') GO
Segue abaixo um print-screen para facilitar essa idéia:
Segue abaixo o script do "Send Email" adaptado à este modelo:
EXEC msdb.dbo.sp_send_dbmail @profile_name = 'SQL Job', @recipients = 'monitor@seuemail.com.br', @query = 'SET NOCOUNT ON; SELECT ''BANCOS SINCRONIZADOS''; SELECT DB.NAME , MIRRORING_STATE_DESC FROM SYS.DATABASE_MIRRORING DM INNER JOIN SYS.SYSDATABASES DB ON DM.DATABASE_ID = DB.DBID WHERE MIRRORING_STATE_DESC = ''SYNCHRONIZED'';', @subject = '[MONITOR] Bancos Sincronizados', @attach_query_result_as_file = 1;
Se ajudou na sua solução, não esqueça de marcar como resposta !
Abraços,
Durval Ramos
Microsoft Partner | MTA | MCSA - SQL Server 2012 | MCSE - Data Platform
----------------------------------
Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"- Marcado como Resposta Renata Cardoso quarta-feira, 1 de junho de 2016 16:11
Todas as Respostas
-
Renata, bom dia
Use o CASE.
Ex. SELECT CASE MIRRORING_STATE_DESC WHEN 'SYNCRONIZED' THEN 'SINCRONIZADA' ELSE 'NAO SINCRONIZADA' FROM TABELAS
Eduardo Gomes
MTA - MCSA SQL Server 2012 - MCSE Business Intelligence
http://edugp.wordpress.com/
Twitter: @edugp_sp -
Renata,
Você pode definir no Job a execução da procedure de sistema "sp_send_dbmail" no último passo (caso concluído com sucesso).
Segue abaixo um script T-SQL para você adaptar à sua necessidade:
EXEC msdb.dbo.sp_send_dbmail @profile_name = 'SQL Job', @recipients = 'monitor@seuemail.com.br', @query = 'SELECT DB.NAME , MIRRORING_STATE_DESC FROM SYS.DATABASE_MIRRORING DM INNER JOIN SYS.SYSDATABASES DB ON DM.DATABASE_ID = DB.DBID WHERE MIRRORING_STATE_DESC = ''SYNCHRONIZED''', @subject = '[MONITOR] Bancos Sincronizados', @attach_query_result_as_file = 1;
Para maiores informações veja:
https://msdn.microsoft.com/pt-br/library/ms190307.aspx
Se ajudou na sua solução, não esqueça de marcar como resposta !
Abraços,
Durval Ramos
Microsoft Partner | MTA | MCSA - SQL Server 2012 | MCSE - Data Platform
----------------------------------
Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil" -
-
-
o Email que recebo vem como no print e eu quero uma formatação diferente
Quero ele desta forma:
Exemplo:
+------------------------------------------------------------+
BASES SINCRONIZADAS
+------------------------------------------------------------+
DATA ATUAL
+------------------------------------------------------------+
E O resultado do select:
TESTE SYNCHRONIZED
TESTE 2 SYNCHRONIZED -
o Email que recebo vem como no print e eu quero uma formatação diferente
Renata,
Você já tentou aplicar a execução de outras consultas para definir esta estrutura como você gostaria?
Segue abaixo um script T-SQL para você adaptar à sua necessidade:
-- Apenas para demonstrar a "idéia" - use apenas no SSMS EXEC('SET NOCOUNT ON; SELECT ''BANCOS SINCRONIZADOS''; SELECT ''PESQUISA'' AS NAME, ''SYNCRONIZED'' AS MIRRORING') GO
Segue abaixo um print-screen para facilitar essa idéia:
Segue abaixo o script do "Send Email" adaptado à este modelo:
EXEC msdb.dbo.sp_send_dbmail @profile_name = 'SQL Job', @recipients = 'monitor@seuemail.com.br', @query = 'SET NOCOUNT ON; SELECT ''BANCOS SINCRONIZADOS''; SELECT DB.NAME , MIRRORING_STATE_DESC FROM SYS.DATABASE_MIRRORING DM INNER JOIN SYS.SYSDATABASES DB ON DM.DATABASE_ID = DB.DBID WHERE MIRRORING_STATE_DESC = ''SYNCHRONIZED'';', @subject = '[MONITOR] Bancos Sincronizados', @attach_query_result_as_file = 1;
Se ajudou na sua solução, não esqueça de marcar como resposta !
Abraços,
Durval Ramos
Microsoft Partner | MTA | MCSA - SQL Server 2012 | MCSE - Data Platform
----------------------------------
Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"- Marcado como Resposta Renata Cardoso quarta-feira, 1 de junho de 2016 16:11
-
Renata,
Acredito que a respota do Durval por mais simples que ela possa ser é muito funcional e bastante prática, entendo que poderá te ajudar.
Agora você diz que deseja o retorno do e-mail formatado, talvez uma possibilidade seria você formatar o retorno do seu e-mail via sp_send_dbmail em HTML Format, veja se este exemplo ajuda:
EXEC msdb.dbo.sp_send_dbmail @profile_name = 'SQL Job', @recipients = 'monitor@seuemail.com.br', @query = 'SET NOCOUNT ON; SELECT ''BANCOS SINCRONIZADOS''; SELECT DB.NAME , MIRRORING_STATE_DESC FROM SYS.DATABASE_MIRRORING DM INNER JOIN SYS.SYSDATABASES DB ON DM.DATABASE_ID = DB.DBID WHERE MIRRORING_STATE_DESC = ''SYNCHRONIZED'';', @subject = '[MONITOR] Bancos Sincronizados', @body = 'This is an HTML test email send using <b>sp_send_dbmail</b>', @body_format = 'HTML', @attach_query_result_as_file = 1;
Pedro Antonio Galvao Junior [MVP | MCC | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitario | SoroCodigos | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]
-
Olá...
Direto do BOL.
CREATE TABLE #TMP ( NOME VARCHAR(15), STATUS VARCHAR(12) ) INSERT #TMP ( NOME, STATUS ) VALUES ('BD1','SYNCHRONIZED') INSERT #TMP ( NOME, STATUS ) VALUES ('BD2','SYNCHRONIZED') INSERT #TMP ( NOME, STATUS ) VALUES ('BD3','SYNCHRONIZED') INSERT #TMP ( NOME, STATUS ) VALUES ('BD4','SYNCHRONIZED') INSERT #TMP ( NOME, STATUS ) VALUES ('BD5','SYNCHRONIZED') INSERT #TMP ( NOME, STATUS ) VALUES ('BD6','SYNCHRONIZED') DECLARE @tableHTML NVARCHAR(max); SET @tableHTML = N'<h4>BASES SINCRONIZADAS</h4>'+ N'+------------------------------------+</br>'+ N'Data: '+CONVERT(VARCHAR(12),getdate(),103)+N'</br>'+ N'+------------------------------------+</br></br>'+ N'<table border=1>'+ N' <tr><th>Base</th><th>Status</th></tr>'+ CAST ( ( SELECT td = t.NOME, '', td = t.status, '' FROM #tmp AS t FOR XML PATH('tr'), TYPE ) AS NVARCHAR(MAX) )+ N'</table>'; EXEC msdb.dbo.sp_send_dbmail @profile_name = 'DBA', @recipients = 'e-mail monitor', @subject = '[MONITOR] Bancos Sincronizados', @body = @tableHTML, @body_format = 'HTML'
Fonte: BOL
Resultado !
Flávio Farias
"May the Force be with you"
Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"- Editado Flávio Augusto Lacerda de FariasMVP quinta-feira, 1 de outubro de 2015 20:39 Complemento da resposta
- Sugerido como Resposta Flávio Augusto Lacerda de FariasMVP terça-feira, 13 de outubro de 2015 13:27