我在Trigger
的调用过程中得到了以下的T-sql
。 trigger
本身在另一个proc中运行,并被包装在transaction
中。Try-Catch在触发器内不能正常工作
IF @Email <> ''
BEGIN
BEGIN TRY
EXEC msdb..sp_send_dbmail
@profile_name = @MailProfileName,
@recipients = @Email,
@subject = @Subject,
@body = @EmailBody,
@body_format = @EmailBodyFormat
END TRY
BEGIN CATCH
-- In future this error can be logged to message log or as an action message but ignore for now, it's due to mail profile setting.
--SELECT ERROR_MESSAGE()
END CATCH
END
的问题是,当@MailProfileName
是invalid
曲线值,则sp_send_dbmail
引发的错误是罚款到现在为止,但后来我从try-catch
想到的是赶上这个错误在catch
块压制它并让执行继续下一行。但是,由于这个错误,整个过程实际上发生了什么事情。
有没有人有任何想法为什么会发生。 Ta。
请避免编辑问题以包含解决方案。相反,回答你自己的问题并接受答案,以便人们知道问题已经解决。 –