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)