我在下面写了一个触发器,插入值,如果 emailstudio
列更新。这一列可以是0或1。
我如何编写触发器,使它只有在下面的 emailstudio
列从0变为1,而不是如果它已经是1?
谢谢你的建议
ALTER TRIGGER [dbo].[RM_Est_Email_Trigger]
ON [dbo].[K3_BriefHeader]
AFTER UPDATE
AS
BEGIN
SET NOCOUNT ON;
DECLARE @estimate int, @Email_Date datetime, @status int, @emailstudio bit
SET @estimate = (SELECT Estimate from inserted)
set @Email_Date = GETDATE()
SET @status = (SELECT Status from inserted)
SET @emailstudio = (SELECT EmailStudio from inserted)
IF UPDATE (EmailStudio)
BEGIN
INSERT INTO [dbo].[K3_EstimateEmailDate] ([Estimate], [Email_Date],[Status], [EmailStudio])
VALUES (@estimate, @Email_Date, @status, @emailstudio)
END
END
Insert INTO [dbo].[K3_EstimateEmailDate] (
[Estimate]
,[Email_Date]
,[Status]
,[EmailStudio]
)
SELECT Estimate
,GETDATE()
,status
,1
FROM inserted
LEFT JOIN deleted
ON deleted.<primarykey> = inserted.<primarykey>
WHERE inserted.emailstudio = 1
AND (deleted.emailstudio is null -- inserted
OR deleted.emailstudio = 0) -- updated