sql >> データベース >  >> RDS >> Sqlserver

SQL Server(T-SQL)でクエリ結果を電子メールで送信するときに区切り文字をコンマに変更する

    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)

    1. 大量のデータを配信するクエリに最適なMySQL設定?

    2. トランザクションの影響を受けないシーケンス?

    3. Postgresで日時をUNIXエポック値に変換するにはどうすればよいですか?

    4. dbms_outputバッファを増やす方法は?