在先前插入时使用条件更新插入触发器

时间:2018-05-25 12:46:50

标签: sql-server tsql triggers

我有一张桌子。我想制作执行以下操作的插入触发器:

  1. update t set dbupddate=getdate() where t.code in (select code from inserted)
  2. insert into someothertable select * from inserted

  3. IFF步骤2)成功,然后

    update t set transfer_date=getdate()

    (但是,即使第2步不成功,也不要回滚第1步!)

  4. 问题是使用什么触发器以及如何使用触发器,这样我就可以确保步骤1始终运行,只有当步骤2不会抛出错误时才会执行步骤3.

    我想要的原因是能够通过对transfer_date = null的行进行查询来手动检查不成功的第2步插入。

1 个答案:

答案 0 :(得分:0)

  

IFF步骤2)是成功的,然后

触发器在启动触发器的DML语句的事务中运行。如果步骤2)失败,则将回滚原始INSERT。