Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Zmień separator na przecinek podczas wysyłania wyników zapytania pocztą e-mail w programie SQL Server (T-SQL)

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)

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Przechowywanie obrazów w SQL Server?

  2. Wartości NULL wewnątrz klauzuli NOT IN

  3. Błąd CTE:typy nie pasują do kotwicy i części rekurencyjnej

  4. Indeksy SQL Server — rosnąco czy malejąco, co to za różnica?

  5. Profilowanie zapytań 101 — tak, naprawdę może poprawić wydajność serwera SQL