Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Remover preenchimento ao enviar resultados de consulta em um email do SQL Server (T-SQL)


Quando você usa o sp_send_dbmail procedimento armazenado para enviar emails do SQL Server, você tem a opção de adicionar resultados de consulta ao email.

Ao fazer isso, você pode descobrir que o preenchimento indesejado foi adicionado a algumas colunas. Felizmente, você pode eliminar esse preenchimento com o @query_result_no_padding argumento.

Antes


Aqui está um exemplo de como os resultados podem ser com preenchimento.
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',
    @subject = 'Query results as discussed';

Resultado:
Potential candidates for an Admin job, perhaps?
ArtistId    ArtistName                                                
           ActiveFrom      
----------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
----------- ----------------
         1 Iron Maiden                                                   
                 1975-12-25
         2 AC/DC                                                          
                 1973-01-11
         3 Allan Holdsworth                                           
                 1969-01-01
         4 Buddy Rich                                                    
                 1919-01-01
         5 Devin Townsend                                            
                 1993-01-01

(5 rows affected)

Nesse caso, há tanto preenchimento acontecendo que tudo passa para a próxima linha e os cabeçalhos não se alinham com os dados.

Depois


Aqui está um exemplo de como os resultados ficam depois que eu removi o preenchimento.
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',
    @subject = 'Query results as discussed';

Resultado:
Potential candidates for an Admin job, perhaps?
ArtistId ArtistName ActiveFrom
-------- ---------- ----------
1 Iron Maiden 1975-12-25
2 AC/DC 1973-01-11
3 Allan Holdsworth 1969-01-01
4 Buddy Rich 1919-01-01
5 Devin Townsend 1993-01-01

(5 rows affected)