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)