嵌套触发器问题

时间:2011-07-30 18:16:49

标签: sql tsql

我正在研究一种以嵌套方式调用sql触发器的解决方案,稍后我将解释这个问题,让我先介绍一下这些表。

  1. BillDetails
  2. SubProductAtLocation
  3. 是的,这是一个专为零售店设计的erp,Bill详细信息表包含行bill Items

    billDetails

    1. 行ID
    2. BILLID
    3. SubProductID
    4. MRP
    5. 纳税
    6. 折扣
    7. subproductLocation

      1. 行ID
      2. SubproductID
      3. LocationID
      4. 数量
      5. 的ProductID
      6. **now**有一个触发器在BillDetails插入后运行,其功能是从SubProductAtLocation中扣除数量,更多的是在subproductAtLocation中插入,更新之后有触发器,它会写入审计日志。

        **Problem**我不希望subproductAtLocation触发器运行,如果由于billdetails触发更新而调用它,通常我可以暂时禁用触发器或者sp_configure 'nested triggers' n但是不能这样做,因为sql server是共享的这样做既不可行也不可行。

        **Possible Solution**
        

        如果我可以将某个标志值存储在某个由subproductatLocation触发器检查的位置,并且如果设置了flag则可以回滚事务。可以在BillDetails触发器的最后一行清除此标志。

        请原谅我糟糕的知识 感谢

1 个答案:

答案 0 :(得分:0)

如果你把'flag'放在第二个表中,那么只在触发插入期间将其设置为'special'值,那么第二个触发器只有if检查如果设置了该值则不写日志...