SQL Server触发器阻止将行插入数据库并且不执行存储过程

时间:2019-02-07 21:22:30

标签: sql-server triggers

我试图在将行插入数据库后触发触发器。该应用程序在禁用触发器的情况下可以正常运行,但是启用该功能后,该行将永远不会插入(从应用程序中)到数据库中,并且触发器不会触发存储过程。

AFTER INSERT是否应触发触发器AFTER数据库表行已插入?

ALTER TRIGGER [dbo].[trSendException]
ON  [dbo].[Logs]   
AFTER INSERT  
AS 
BEGIN
    SET NOCOUNT ON;
    EXEC dbo.EmailExceptionAlerts
END

从应用程序向数据库中插入一行后,我需要触发器来执行存储过程。

1 个答案:

答案 0 :(得分:0)

我在执行初始存储过程的应用程序中的方法中使用了try catch块(如建议的那样)来插入一行并得到异常:对对象'sp_send_dbmail',数据库'msdb'的EXECUTE权限被拒绝,架构“ dbo”。然后,我为用户授予了对msdb的访问权限,并在用户映射的用户映射下选中了DatabaseMailUserRole的选项,以供用户登录。现在可以正常工作了。谢谢!