SQL Serverのデータベースメールには、sp_send_dbmail
というストアドプロシージャがあります SQLServerからの電子メールの送信に使用できます。
このストアドプロシージャを使用して、HTMLテーブルにフォーマットされたクエリ結果を送信できます。
例
実例を示します。
DECLARE @body_content nvarchar(max);
SET @body_content = N'
<style>
table.GeneratedTable {
width: 100%;
background-color: #ffffff;
border-collapse: collapse;
border-width: 2px;
border-color: #ffcc00;
border-style: solid;
color: #000000;
}
table.GeneratedTable td, table.GeneratedTable th {
border-width: 2px;
border-color: #ffcc00;
border-style: solid;
padding: 3px;
}
table.GeneratedTable thead {
background-color: #ffcc00;
}
</style>
<table class="GeneratedTable">
<thead>
<tr>
<th>ArtistId</th>
<th>ArtistName</th>
<th>ActiveFrom</th>
</tr>
</thead>
<tbody>' +
CAST(
(SELECT td = ArtistId, '',
td = ArtistName, '',
td = ActiveFrom, ''
FROM Music.dbo.Artists
FOR XML PATH('tr'), TYPE
) AS nvarchar(max)
) +
N'</tbody>
</table>';
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'DB Admin Profile',
@recipients = '[email protected]',
@body = @body_content,
@body_format = 'HTML',
@subject = 'As discussed';
この場合、@body_content
という変数を宣言します すべてのHTMLコードをその中に入れます。また、CSSを使用していくつかのスタイルを追加し、テーブルに境界線やヘッダーなどが表示されるようにします。この変数は、@body
の値として使用されます。 sp_send_dbmail
を使用してメールを送信するときの引数 手順。
スタイルを適用する必要がない場合は、<style></style>
を削除するだけです。 タグとその間のすべて。この場合、class="GeneratedTable"
を削除することもできます 実際のテーブルからのビット。
スタイルを変更したい場合は、Quackitで私のテーブルジェネレーターをチェックしてください。これを使用してテーブルスタイルを生成し、それらのスタイルをコピーして、メールに送信されるコードに貼り付けることができます。
CAST()
に渡されるT-SQLコード 関数は、それぞれ独自のテーブル行(<tr>
)にクエリ結果を返すものです。 要素)、および独自の<td>
内の各列 要素。
必ず@body_format = 'HTML'
を含めてください 。これは、HTML形式で電子メールを送信するものです。これを省略した場合(またはTEXT
に設定した場合) )、受信者はレンダリングされたコードではなく、生のHTMLコードを受け取ります。