Триггер SQL выполняется только один раз - PullRequest
0 голосов
/ 16 мая 2018

Мы пытаемся написать триггер, который отправляет электронное письмо при вставке / обновлении. Это нужно запустить каждый раз, когда есть изменения. Текущий триггер запускается только один раз и больше не запускается. Вот код:

USE db
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER TRIGGER emailonupdate
ON table
FOR INSERT, UPDATE
AS 
Begin
    SET NOCOUNT ON;
    DECLARE @BODY NVARCHAR(MAX) = N' '; 
    SELECT @BODY += CHAR(13) + CHAR(10) + RTRIM(inserted.col1 + ' has added an item in db to ID# ' + inserted.col2) FROM inserted
    WHERE inserted.col1 IN (1263, 1276, 1277);

IF EXISTS (SELECT 1 FROM inserted WHERE col1 IN (1263, 1276, 1277))
    BEGIN
        EXEC msdb.dbo.sp_send_dbmail
          @profile_name = 'DBA_Notifications',
          @recipients = 'me@myemail.com',
          @subject = 'Database Email', 
          @body = @body;
    END
End
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...