Мне нужно создать триггер в таблице SQL для отправки электронной почты, если вставленная запись соответствует определенным условиям. То есть я создаю триггер в таблице1, чтобы отправить электронное письмо на X, если во вставленной записи поле IdCircuito = 53, IdTipoDoc = 45 и Gestor = 'Gest1'. Кроме того, в теле сообщения электронной почты я хочу, чтобы появилось значение определенного поля этой вставленной записи. Я сделал что-то вроде этого, но триггер всегда выполняет независимо от вставленной записи:SQL Trigger для отправки электронной почты
CREATE TRIGGER dbo.SendEmail
ON dbo.TitulosDoc
AFTER INSERT
AS
BEGIN
SET NOCOUNT ON;
IF EXISTS (SELECT 1 FROM TitulosDoc WHERE IdCircuito = 53 AND IdTipoDoc = 45 AND Gestor = 'Gest1')
BEGIN
EXEC msdb.dbo.sp_send_dbmail
@recipients = '[email protected]',
@subject = 'New requeriment',
@body = 'It's a new requeriment: ';
END
END
GO
В теле, где я хочу показать буквальный текст со значением поля вставленной записи: @body = «Это новый запрос: '+ TitulosDoc.NombreDocumento;
Может кто-нибудь мне помочь? Спасибо
Вместо отправки электронной почты непосредственно с вашего триггера вместо этого необходимо заполнить промежуточную таблицу данных, которую необходимо отправить по электронной почте. Затем создайте процесс, который запрашивает промежуточную таблицу каждые несколько минут и отправляет электронное письмо. Обоснование здесь состоит в том, что вы можете добавить более одной строки за раз, и вам нужно будет зациклировать эти строки. Вместо того, чтобы вводить петли и электронные письма в ваш триггер, мы перемещаем это в промежуточную таблицу, чтобы поддерживать производительность системы. –