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

Cambie el separador a una coma al enviar por correo electrónico los resultados de la consulta en SQL Server (T-SQL)

Si alguna vez ha utilizado el correo de la base de datos de SQL Server para enviar por correo electrónico los resultados de una consulta, es posible que haya notado que los resultados están separados por un espacio de forma predeterminada.

Esto está bien si desea un conjunto de resultados separados por espacios, pero ¿qué sucede si desea que estén separados por comas?

Afortunadamente puedes usar el @query_result_separator argumento para hacer precisamente eso. Puede usar este argumento para especificar cualquier separador (siempre que sea un char(1) ).

Ejemplo

Aquí hay un ejemplo para demostrar cómo cambiar el separador a una coma:

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:

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)

Tenga en cuenta que también estoy usando @query_result_no_padding argumento para eliminar cualquier relleno que pueda aplicarse a los resultados.

También puede usar @attach_query_result_as_file = 1 para adjuntar los resultados en un archivo separado si es necesario.

Un ejemplo usando el separador de espacio predeterminado

Si elimino @query_result_separator = ',' parte del ejemplo anterior, mis resultados están separados por el carácter de espacio predeterminado.

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:

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)