У меня проблемы с созданием триггера, который отправит сообщение электронной почты, содержащее таблицу вставленных данных, в список рассылки, когда устройство подключено к загрузчику IP-адресов, и данные отправляются в таблицу на SQL Server. Мне нужно, чтобы Date, DownloadID и Description из самых последних записей (23-26 строк в одной загрузке) были выбраны, а затем отформатированы в электронное письмо и отправлены.
Я относительно новичок в SQL, поэтому я не уверен, где мне нужно посмотреть, какую ошибку генерирует триггер. Ниже приведен блок кода, с которым я пытался работать. Любые предложения или советы будут оценены. Когда я запускаю оператор выбора и хранимую процедуру электронной почты вручную, она работает нормально. Как только я превращаю его в триггер, он выходит из строя.
CREATE TRIGGER [dbo].[Trg_Download]
ON [dbo].[DownloadData]
AFTER INSERT
AS
BEGIN
SET NOCOUNT ON;
DECLARE @DownloadID VARCHAR(7)
DECLARE @xml NVARCHAR(MAX)
DECLARE @body NVARCHAR(MAX)
SET @DownloadID = (SELECT TOP 1 downloadID
FROM inserted
ORDER BY downloadid DESC)
SET @xml = CAST((SELECT [Date] AS 'td','',[DownloadID] AS 'td','', [Description] AS 'td'
FROM inserted
WHERE [DownloadID] = @downloadID
ORDER BY Description
FOR XML PATH('tr'), ELEMENTS) AS NVARCHAR(MAX))
SET @body = '<html><body><H3>Line Clearout Summary</H3>
<table border = 1>
<tr>
<th> Date </th> <th> DownloadID </th> <th> Description </th></tr>'
SET @body = @body + @xml +'</table></body></html>'
EXEC msdb.dbo.sp_send_dbmail
@profile_name = N'DBMail',
@body = @body,
@body_format = HTML,
@recipients = N'DistributionList@GMAIL.com',
@subject = 'Line Clearout Summary'
END
Спасибо