Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Rimuovere il riempimento durante l'invio dei risultati della query in un'e-mail da SQL Server (T-SQL)

Quando usi sp_send_dbmail stored procedure per inviare e-mail da SQL Server, hai la possibilità di aggiungere i risultati della query all'e-mail.

Quando lo fai, potresti scoprire che è stata aggiunta una spaziatura interna indesiderata ad alcune colonne. Fortunatamente, puoi eliminare questo riempimento con il @query_result_no_padding argomento.

Prima

Ecco un esempio di come potrebbero apparire i risultati con il riempimento.

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

Risultato:

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)

In questo caso, c'è così tanto riempimento in corso che tutto passa alla riga successiva e le intestazioni non si allineano con i dati.

Dopo

Ecco un esempio di come appaiono i risultati dopo aver rimosso il padding.

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

Risultato:

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)