トランザクション内でエラーが発生したときにデータベースメールを送信しようとしています。dbo.sp_send_dbmailの設定は正しいですが、procを実行すると、1分以内にメールが届きます。
ただし、トランザクション内の別のproc内でdbo.sp_send_dbmailを使用しようとすると、電子メールが届きません。SQLサーバーは結果ウィンドウに「メールがキューに入れられました」と表示しますが、受信しません。
トランザクションの開始
DECLARE @err int DECLARE @test nvarchar(max)
RAISERROR('これはテストです'、16、1)SELECT @err = @@ ERROR
IF @err <> 0 BEGIN
SET @test = error_message()
EXEC msdb.dbo.sp_send_dbmail
@ receiveits ='mail@mail.net'、@
body ='test inside'、
@ subject ='Error with proc'、
@body_format ='HTML'、
@append_query_error = 1、
@profile_name = 'データベースメールプロファイル';ロールバックトランザクションリターンエンド
トランザクションのコミット
そして、私は次のように結果を得る
メッセージ50000、レベル16、状態1、行7
これはキューに入れられたテスト
メールです。