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の例を示します。それほど時間はかかりません。