Jeśli kiedykolwiek korzystałeś z poczty bazy danych SQL Server do wysyłania wyników zapytania pocztą e-mail, być może zauważyłeś, że wyniki są domyślnie oddzielone spacją.
Jest to w porządku, jeśli chcesz, aby zestaw wyników był rozdzielany spacjami, ale co jeśli chcesz, aby był rozdzielany przecinkami?
Na szczęście możesz użyć @query_result_separator
argument, aby to zrobić. Możesz użyć tego argumentu, aby określić dowolny separator (o ile jest to znak(1) ).
Przykład
Oto przykład pokazujący, jak zmienić separator na przecinek:
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';
Wynik:
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)
Zauważ, że używam również @query_result_no_padding
argument, aby usunąć wszelkie dopełnienie, które może zostać zastosowane do wyników.
Możesz także użyć @attach_query_result_as_file = 1
aby dołączyć wyniki w osobnym pliku, jeśli jest to wymagane.
Przykład użycia domyślnego separatora spacji
Jeśli usunę @query_result_separator = ','
część z powyższego przykładu, moje wyniki są oddzielone domyślną spacją.
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';
Wynik:
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)