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

Como remover os cabeçalhos de coluna ao enviar por email os resultados da consulta no SQL Server (T-SQL)


Quando você usa o sp_send_dbmail procedimento armazenado para enviar por email os resultados de uma consulta, os cabeçalhos das colunas são incluídos por padrão.

Você pode incluir ou excluir os cabeçalhos das colunas com o @query_result_header argumento. Para remover os cabeçalhos das colunas, use @query_result_header = 0 .

Exemplo


Aqui está um exemplo para demonstrar.
EXEC msdb.dbo.sp_send_dbmail
    @profile_name = 'DB Admin Profile',  
    @recipients = '[email protected]',  
    @body = 'Top 5 cities:',
    @query = 'SELECT TOP(5) * FROM city;',
    @execute_query_database = 'World',
    @query_result_header = 0,
    @query_result_no_padding = 1,
    @subject = 'Query results as discussed';

Resultado:
Top 5 cities:
1 Kabul AFG Kabol 1780000
2 Qandahar AFG Qandahar 237500
3 Herat AFG Herat 186800
4 Mazar-e-Sharif AFG Balkh 127800
5 Amsterdam NLD Noord-Holland 731200

(5 rows affected)

Neste exemplo eu também usei @query_result_no_padding = 1 para remover qualquer preenchimento que possa ser aplicado às colunas.

Se você preferir que cada coluna seja separada por uma vírgula, use @query_result_separator = ',' .
EXEC msdb.dbo.sp_send_dbmail
    @profile_name = 'DB Admin Profile',  
    @recipients = '[email protected]',  
    @body = 'Top 5 cities:',
    @query = 'SELECT TOP(5) * FROM city;',
    @execute_query_database = 'World',
    @query_result_header = 1,
    @query_result_no_padding = 1,
    @query_result_separator = ',',
    @subject = 'Query results as discussed';

Resultado:
Top 5 cities:
ID,Name,CountryCode,District,Population
--,----,-----------,--------,----------
1,Kabul,AFG,Kabol,1780000
2,Qandahar,AFG,Qandahar,237500
3,Herat,AFG,Herat,186800
4,Mazar-e-Sharif,AFG,Balkh,127800
5,Amsterdam,NLD,Noord-Holland,731200

(5 rows affected)

Incluir cabeçalhos de coluna


Para incluir explicitamente os cabeçalhos das colunas, use @query_result_header = 1 .
EXEC msdb.dbo.sp_send_dbmail
    @profile_name = 'DB Admin Profile',  
    @recipients = '[email protected]',  
    @body = 'Top 5 cities:',
    @query = 'SELECT TOP(5) * FROM city;',
    @execute_query_database = 'World',
    @query_result_header = 1,
    @query_result_no_padding = 1,
    @subject = 'Query results as discussed';

Resultado:
Top 5 cities:
ID Name CountryCode District Population
-- ---- ----------- -------- ----------
1 Kabul AFG Kabol 1780000
2 Qandahar AFG Qandahar 237500
3 Herat AFG Herat 186800
4 Mazar-e-Sharif AFG Balkh 127800
5 Amsterdam NLD Noord-Holland 731200

(5 rows affected)