仅当更新前字段为false时,SQL Server才会触发

时间:2020-06-04 12:56:13

标签: sql-server tsql database-trigger

我在下面编写了触发器,如果​​Document doc = entityManager.find(Document.class, documentId); // and in the Document class: public void deleteComments(){ this.comments.stream.forEach( comment-> comment.delete()); } 列已更新,该触发器将插入值。此列可以为0或1。

如何编写触发器,以便仅在emailstudio列从0更改为1时才触发?

谢谢

emailstudio

1 个答案:

答案 0 :(得分:1)

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