sql >> Databasteknik >  >> RDS >> Sqlserver

Ändra avgränsaren till ett kommatecken när du skickar frågeresultat via e-post i SQL Server (T-SQL)

Om du någonsin har använt SQL Servers Database Mail för att e-posta resultaten av en fråga, kanske du har märkt att resultaten är separerade med ett blanksteg som standard.

Det här är bra om du vill ha en mellanslagsseparerad resultatuppsättning, men vad händer om du vill att den ska vara kommaseparerad?

Lyckligtvis kan du använda @query_result_separator argument för att göra just det. Du kan använda det här argumentet för att ange vilken separator som helst (så länge det är en char(1) ).

Exempel

Här är ett exempel för att visa hur man ändrar avgränsaren till ett kommatecken:

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

Resultat:

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)

Observera att jag också använder @query_result_no_padding argument för att ta bort eventuell utfyllnad som kan tillämpas på resultaten.

Du kan också använda @attach_query_result_as_file = 1 för att bifoga resultaten i en separat fil om det behövs.

Ett exempel som använder standardutrymmesseparatorn

Om jag tar bort @query_result_separator = ',' del av exemplet ovan, är mina resultat separerade av standardmellanslagstecknet.

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

Resultat:

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. SQL-övervakning i SQL-utvecklare

  2. Vilket är det bästa sättet att undvika tecken som inte är formaterade i Oracles to_char?

  3. Oracle Cloud Breakdown – Databas Hosting Costs on OCI

  4. Funktion för att beräkna median i SQL Server