Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

So entfernen Sie die Spaltenüberschriften beim E-Mail-Versand von Abfrageergebnissen in SQL Server (T-SQL)

Wenn Sie den sp_send_dbmail verwenden gespeicherte Prozedur, um die Ergebnisse einer Abfrage per E-Mail zu versenden, sind die Spaltenüberschriften standardmäßig enthalten.

Sie können die Spaltenüberschriften mit @query_result_header einschließen oder ausschließen Streit. Verwenden Sie zum Entfernen der Spaltenüberschriften @query_result_header = 0 .

Beispiel

Hier ist ein Beispiel zur Veranschaulichung.

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

Ergebnis:

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)

In diesem Beispiel habe ich auch @query_result_no_padding = 1 verwendet , um jegliche Auffüllung zu entfernen, die möglicherweise auf die Spalten angewendet wird.

Wenn Sie es vorziehen, dass jede Spalte durch ein Komma getrennt wird, verwenden Sie @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';

Ergebnis:

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)

Spaltenüberschriften einschließen

Um Spaltenüberschriften explizit einzuschließen, verwenden Sie @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';

Ergebnis:

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)