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

SQL Server(T-SQL)でクエリの結果を電子メールで送信する方法

    SQL Serverは、クエリの結果を自分自身(または他の誰か)に電子メールで送信する簡単な方法を提供します。

    T-SQLでメールを送信するには、sp_send_dbmailを使用する必要があります msdbのストアドプロシージャ データベース。このプロシージャは多くの引数を受け入れます。そのうちの1つは@queryです。 口論。これが、クエリの結果をメールに添付するための議論です。

    最小限の引数を使用する基本的な例を次に示します。

    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',
        @subject = 'Query results as discussed';

    デフォルトでは、クエリの結果は電子メールの本文にリストされています。または、結果を添付ファイルとして送信することもできます。

    パディングを削除

    結果が列内のパディングが多すぎるようにフォーマットされている場合は、@query_result_no_padding = 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_no_padding = 1,
        @subject = 'Query results as discussed';

    クエリ結果を添付ファイルとして追加

    @attach_query_result_as_fileを使用できます クエリ結果を添付ファイルとして追加する引数。これはビットを受け入れます 値。デフォルトは0です。 (添付ファイルなし)。

    結果を添付ファイルで送信するには、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',
        @attach_query_result_as_file = 1,
        @query_attachment_filename = 'Artists.csv',
        @query_result_header = 1,
        @query_result_width = 256,
        @query_result_separator = ',',
        @exclude_query_output = 1,
        @append_query_error = 1,
        @query_no_truncate = 0,
        @query_result_no_padding = 1,
        @subject = 'Query results as discussed';

    この例では、さらにいくつかの引数を追加しました。

    @query_attachment_filename 引数を使用すると、独自のファイル名を指定できます(この引数を指定しない場合は、データベースメールがファイル名を構成します)。

    sp_send_dbmail プロシージャは、ここにリストしたよりも多くの引数を受け入れます。引数とその説明の完全なリストについては、Microsoftのドキュメントを参照してください。

    データベースメールの設定

    このページの例は、データベースメールをすでに有効にして構成していることを前提としています。

    データベースメールが構成されていない場合は、SQLServerから電子メールを送信する方法を参照してください。この記事では、データベースメールを有効にして構成するためのT-SQLの例を示します。それほど時間はかかりません。


    1. データベーススナップショットのパフォーマンスを見る

    2. NEWSEQUENTIALID()を使用して、SQLServerでインクリメントGUIDを作成します

    3. OracleDatabase19cのオプティマイザ

    4. これらの3つの一般的なアクセスの問題をトラブルシューティングする方法