Вот грубый переработанный пример того, что вам нужно.У меня нет стола, поэтому я не могу его проверить, но подозреваю, что он довольно близок.
CREATE TRIGGER tr_JTIA_ForInsert
ON dbo.MyTable
AFTER INSERT
AS
BEGIN
SET NOCOUNT ON;
SET XACT_ABORT ON;
DECLARE @JTIItemID int;
DECLARE @UserWWID int;
DECLARE @EmailBody nvarchar(max);
DECLARE @EmailsToSend TABLE
(
EmailsToSendID int NOT NULL IDENTITY(1,1) PRIMARY KEY,
JTIItemID int,
UserWWID int
);
INSERT @EmailsToSend (JTIItemID, UserWWID)
SELECT i.JTIItemID, i.UserWWID
FROM inserted AS i
INNER JOIN dbo.MyTable AS mt
ON mt.ItemID = i.ItemID
AND mt.UserWWID = i.UserWWID
AND mt.[Status] = i.[Status];
DECLARE @Counter int = 1;
WHILE @Counter <= (SELECT MAX(EmailsToSendID) FROM @EmailsToSend)
BEGIN
SELECT @JTIItemID = ets.JTIItemID,
@UserWWID = ets.UserWWID
FROM @EmailsToSend AS ets
WHERE ets.EmailsToSendID = @Counter;
SET @EmailBody = CONCAT(N'User : ',
(SELECT CONVERT(varchar(20),12345)),
N' was assigned a duplicate JTIItemID: ',
(SELECT CONVERT(varchar(20),1234567)),
N' at timestamp: ',
(SELECT convert(varchar, GETDATE(), 22)));
EXEC msdb.dbo.sp_send_dbmail
@recipients = N'edwin@gmail.com',
@profile_name = N'App Administrator',
@body = @EmailBody,
@subject = N'Duplicate record Was Assigned to user:';
SET @Counter += 1;
END;
END;
GO
Надеюсь, что это поможет вам.