我在 INSERT 上有一个简单的触发器
ALTER TRIGGER [dbo].[SendErrorEmail]
ON [dbo].[tblNewErrorLog]
FOR INSERT
AS
BEGIN
EXEC msdb.dbo.sp_send_dbmail
@profile_name='myprofile',
@recipients='me@me.com',
@subject='error in the database',
@body = 'check it out'
END
- 如果我使用 Management Studio 手动添加一行,一切都很好,添加了行的电子邮件已发送。
- 如果通过服务记录错误,则什么也没有。没有电子邮件,没有新行。
- 如果我删除触发器 - 事情按预期工作,添加行。
- 如果我保留触发器,但删除电子邮件 SP,就可以了。添加了新行。
那么,错误显然与电子邮件有关,也许是安全性?我已经尝试登录服务用于连接数据库的凭据,如果我手动添加一行,它就可以工作。
我也有点担心,即使邮件没有发送,插入也会失败,这是为什么呢?
关于从哪里开始排除故障的想法是最受欢迎的。
谢谢!
编辑:从代码常规 Tidy up 中删除了 try catch