在SQL Server中插入触发器



我试图在SQL Server数据库中使用INSERT TRIGGER。这是我的第一个触发器,我想用它来发送电子邮件,如果在插入的行中满足某个值:

CREATE TRIGGER dbo.SEND_MAIL
ON  dbo.table
AFTER INSERT
AS 
BEGIN
SET NOCOUNT ON
IF (SELECT field1 FROM INSERTED) = '1'
BEGIN
EXEC msdb.dbo.sp_send_dbmail
@recipients = 'mail address',           
@profile_name = 'profile1',
@subject = 'subject', 
@body = 'body text';
END
END

如果我尝试使用这些电子邮件参数执行send_dbmail存储过程,电子邮件将被完美地发送出去。但不是在触发器。

我看到符合IF语句(field1 = '1')条件的值被插入到表中。但不明白为什么不工作在触发器。

我尝试在IF中使用"LIKE"代替"equal",但是没有成功。

有什么提示让它工作吗?

提前感谢你,

您可以在插入表中有许多记录,因此我建议您这样写:

IF exists (SELECT field1 FROM INSERTED where field1='1') 
BEGIN
EXEC msdb.dbo.sp_send_dbmail
@recipients = 'mail address',           
@profile_name = 'profile1',
@subject = 'subject', 
@body = 'body text';
END

相关内容

  • 没有找到相关文章

最新更新