【发布时间】:2019-01-19 03:46:53
【问题描述】:
我的问题与问题标题相同,以下是我尝试过的代码。
ALTER TRIGGER [dbo].[Entrega_Insert]
ON [dbo].[Entrega]
AFTER INSERT
AS
BEGIN
SET NOCOUNT ON;
DECLARE @DataEntrega DATETIME, @IdEncomenda INT, @QTDEncomenda INT
DECLARE @IdVisita INT
SELECT @DataEntrega = DataEntrega, @IdEncomenda = b.IdEncomenda
FROM [dbo].[Entrega] AS a
INNER JOIN [dbo].[Encomenda] AS b ON a.[IdEncomenda] = b.[IdEncomenda]
INNER JOIN [dbo].[Visita] AS c ON b.[IdVisita] = c.[IdVisita]
--INNER JOIN
DECLARE @BigBody VARCHAR(500) = CAST(@DataEntrega AS VARCHAR(100)) + ' ' + CAST(@IdEncomenda AS VARCHAR(100))
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'Dc'
,@recipients = 'danny17kx@gmail.com'
,@subject = 'A sua encomenda foi processada e aceite.'
,@body = @BigBody
,@importance ='HIGH'
,@body_format='HTML'
END
【问题讨论】:
-
你没有说邮件出了什么问题
-
当我收到电子邮件时,数据库中的值是错误的。就像 IdEncomenda 是 1 电子邮件发送给我 2
-
@Garett 你能帮帮我吗?
-
您的
SELECT语句应该引用inserted虚拟表而不是Entrega。此外,一次可以插入多行,您的触发器应该被编码来处理它。 -
我不知道该怎么做
标签: sql sql-server triggers