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

Ändern Sie das Trennzeichen in ein Komma, wenn Sie Abfrageergebnisse in SQL Server (T-SQL) per E-Mail senden

Wenn Sie jemals die Datenbank-E-Mail von SQL Server verwendet haben, um die Ergebnisse einer Abfrage per E-Mail zu versenden, ist Ihnen vielleicht aufgefallen, dass die Ergebnisse standardmäßig durch ein Leerzeichen getrennt werden.

Dies ist in Ordnung, wenn Sie eine durch Leerzeichen getrennte Ergebnismenge wünschen, aber was ist, wenn Sie möchten, dass sie durch Kommas getrennt wird?

Glücklicherweise können Sie den @query_result_separator verwenden Argument, genau das zu tun. Sie können dieses Argument verwenden, um ein beliebiges Trennzeichen anzugeben (solange es ein char(1) ist ).

Beispiel

Hier ist ein Beispiel, um zu demonstrieren, wie man das Trennzeichen in ein Komma ändert:

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

Ergebnis:

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)

Beachten Sie, dass ich auch @query_result_no_padding verwende -Argument, um jegliche Auffüllung zu entfernen, die möglicherweise auf die Ergebnisse angewendet wird.

Sie können auch @attach_query_result_as_file = 1 verwenden um die Ergebnisse bei Bedarf in einer separaten Datei anzuhängen.

Ein Beispiel mit dem Standard-Leerzeichen

Wenn ich das @query_result_separator = ',' entferne Abgesehen vom obigen Beispiel werden meine Ergebnisse durch das Standard-Leerzeichen getrennt.

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

Ergebnis:

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)