当事务内部发生错误时,我正在尝试发送数据库邮件。我对 dbo.sp_send_dbmail 的设置是正确的,当我执行 proc 时,我确实在 1 分钟内收到了一封电子邮件。
但是,当我尝试在事务中的另一个 proc 中使用 dbo.sp_send_dbmail 时,我没有收到电子邮件。Sql server 确实在结果窗口中显示“邮件已排队”,但我从未收到它。
开始交易
声明 @err int 声明 @test nvarchar(max)
RAISERROR('这是一个测试', 16, 1) SELECT @err = @@ERROR
IF @err <> 0 开始
SET @test = error_message()
EXEC msdb.dbo.sp_send_dbmail
@recipients='mail@mail.net',@body
= 'test inside',
@subject = 'proc 错误',
@body_format = 'HTML',
@append_query_error = 1,
@profile_name ='数据库邮件配置文件';回滚交易返回结束
提交交易
我得到的结果是
Msg 50000, Level 16, State 1, Line 7
这是一个测试
邮件队列。