SQL Serverのデータベースメールを使用してクエリの結果を電子メールで送信したことがある場合は、結果がデフォルトでスペースで区切られていることに気付いたかもしれません。
スペースで区切られた結果セットが必要な場合はこれで問題ありませんが、コンマで区切った場合はどうなりますか?
幸い、@query_result_separator
を使用できます まさにそれをするための議論。この引数を使用して、任意の区切り文字を指定できます( char(1)である場合 。
例
区切り文字をカンマに変更する方法を示す例を次に示します。
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';
結果:
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)
@query_result_no_padding
も使用していることに注意してください 結果に適用される可能性のあるパディングを削除する引数。
@attach_query_result_as_file = 1
を使用することもできます 必要に応じて、結果を別のファイルに添付します。
デフォルトのスペースセパレータを使用した例
@query_result_separator = ','
を削除すると 上記の例の一部として、私の結果はデフォルトのスペース文字で区切られています。
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';
結果:
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)