[易飞]更新触发器(易飞工时底数 触发本阶人工 制费)

之前写触发的时候

直接FOR UPDATE

变量保存。。。

更新字段

其实可以这样 针对那个字段 做触发。

if update(字段)

  begin

       sql...

 end

写了一个:

CREATE TRIGGER [UPDATE_CurrentLabour_fabricatingcost] ON [dbo].[INVMB]
FOR UPDATE
  AS
  declare  @MB001  CHAR(20),
           @MB096  decimal(7,4)

           
   BEGIN TRANSACTION
   SET NOCOUNT ON

   if UPDATE(MB096)
    BEGIN
           SELECT @MB001=MB001,@MB096=MB096 FROM INSERTED  WHERE MB025='M'
           UPDATE INVMB SET MB061=@MB096*0.16,MB062=@MB096*0.16*0.7  WHERE  MB001=@MB001
 END

SET NOCOUNT OFF
COMMIT TRANSACTION

虽然只是简单的一改,但至少比较合理,效率也高了,尤其是修改比较频繁的情况下

[易飞]更新触发器(易飞工时底数 触发本阶人工 制费)_第1张图片铁观音-厂家直销

你可能感兴趣的:([易飞]更新触发器(易飞工时底数 触发本阶人工 制费))