Se você já usou o Database Mail do SQL Server para enviar por e-mail os resultados de uma consulta, deve ter notado que os resultados são separados por um espaço por padrão.
Isso é bom se você quiser um conjunto de resultados separado por espaço, mas e se você quiser que ele seja separado por vírgula?
Felizmente você pode usar o
@query_result_separator
argumento para fazer exatamente isso. Você pode usar este argumento para especificar qualquer separador (desde que seja um char(1) ). Exemplo
Aqui está um exemplo para demonstrar como alterar o separador para uma vírgula:
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'DB Admin Profile',
@recipients = '[email protected]',
@body = 'Potential candidates for an Admin job, perhaps?',
@query = 'SELECT TOP(5) * FROM Artists;',
@execute_query_database = 'Music',
@query_result_separator = ',',
@query_result_no_padding = 1,
@subject = 'Query results as discussed';
Resultado:
Potenciais candidatos a um cargo de administrador, talvez?ArtistId,ArtistName,ActiveFrom-----------,----------,----------1,Iron Maiden,1975-12-252,AC/DC,1973-01-113,Allan Holdsworth,1969-01-014,Buddy Rich,1919-01-015,Devin Townsend,1993-01-01(5 linhas afetadas)
Observe que também estou usando o@query_result_no_padding
argumento para remover qualquer preenchimento que possa ser aplicado aos resultados.
Você também pode usar@attach_query_result_as_file = 1
para anexar os resultados em um arquivo separado, se necessário.
Um exemplo usando o separador de espaço padrão
Se eu remover o@query_result_separator = ','
parte do exemplo acima, meus resultados são separados pelo caractere de espaço padrão.
EXEC msdb.dbo.sp_send_dbmail @profile_name = 'DB Admin Profile', @recipients = '[email protected]', @body = 'Potential candidates for an Admin job, perhaps?', @query = 'SELECT TOP(5) * FROM Artists;', @execute_query_database = 'Music', @query_result_no_padding = 1, @subject = 'Query results as discussed';
Resultado:
Potenciais candidatos a um cargo de administrador, talvez?ArtistId ArtistName ActiveFrom-------- ---------- ----------1 Iron Maiden 1975-12- 252 AC/DC 1973-01-113 Allan Holdsworth 1969-01-014 Buddy Rich 1919-01-015 Devin Townsend 1993-01-01(5 linhas afetadas)