sql >> Base de Datos >  >> RDS >> Sqlserver

Eliminar relleno al enviar resultados de consultas en un correo electrónico desde SQL Server (T-SQL)

Cuando usa el sp_send_dbmail procedimiento almacenado para enviar correos electrónicos desde SQL Server, tiene la opción de agregar los resultados de la consulta al correo electrónico.

Cuando haga esto, es posible que descubra que se ha agregado un relleno no deseado a algunas columnas. Afortunadamente, puede eliminar este relleno con @query_result_no_padding argumento.

Antes

Este es un ejemplo de cómo se verían los resultados con el relleno.

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)

En este caso, hay tanto relleno que todo pasa a la siguiente línea y los encabezados no se alinean con los datos.

Después

Este es un ejemplo de cómo se ven los resultados después de quitar el relleno.

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)