Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Supprimer le rembourrage lors de l'envoi des résultats de la requête dans un e-mail à partir de SQL Server (T-SQL)

Lorsque vous utilisez le sp_send_dbmail procédure stockée pour envoyer des e-mails à partir de SQL Server, vous avez la possibilité d'ajouter des résultats de requête à l'e-mail.

Lorsque vous faites cela, vous pouvez constater qu'un rembourrage indésirable a été ajouté à certaines colonnes. Heureusement, vous pouvez éliminer ce rembourrage avec le @query_result_no_padding arguments.

Avant

Voici un exemple de ce à quoi les résultats pourraient ressembler avec le rembourrage.

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

Résultat :

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)

Dans ce cas, il y a tellement de remplissage que tout passe à la ligne suivante, et les en-têtes ne s'alignent pas avec les données.

Après

Voici un exemple de ce à quoi ressemblent les résultats après avoir supprimé le rembourrage.

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

Résultat :

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)