sql >> Database teknologi >  >> RDS >> Sqlserver

Skift separatoren til et komma, når du sender forespørgselsresultater via e-mail i SQL Server (T-SQL)

Hvis du nogensinde har brugt SQL Servers Database Mail til at e-maile resultaterne af en forespørgsel, har du måske bemærket, at resultaterne er adskilt med et mellemrum som standard.

Dette er fint, hvis du vil have et mellemrumssepareret resultatsæt, men hvad hvis du vil have det kommasepareret?

Heldigvis kan du bruge @query_result_separator argument for at gøre netop det. Du kan bruge dette argument til at angive en hvilken som helst separator (så længe det er en char(1) ).

Eksempel

Her er et eksempel for at demonstrere, hvordan man ændrer separatoren til et komma:

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)

Bemærk, at jeg også bruger @query_result_no_padding argument for at fjerne enhver udfyldning, der kan anvendes på resultaterne.

Du kan også bruge @attach_query_result_as_file = 1 for at vedhæfte resultaterne i en separat fil, hvis det kræves.

Et eksempel, der bruger standardrumseparatoren

Hvis jeg fjerner @query_result_separator = ',' del af ovenstående eksempel er mine resultater adskilt af standardmellemrumstegn.

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. Sådan returnerer du måneds- og dagnavne på et andet sprog i MariaDB

  2. Administrer MySQL med phpMyAdmin på Ubuntu 9.10 (Karmic)

  3. Kører MySQL *.sql-filer i PHP

  4. ListAGG i SQLSERVER