CREATE TRIGGER Rig_RKmx ON dbo.CKGl_RKMX 
after INSERT,update,Delete
AS  update Base_Hp Set Kcsl=Kcsl+(Select sl from Inserted) 
     where HpBm in (Select hpBm from inserted)  update Base_hp Set Kcsl=kcsl-(Select Sl from Deleted)
     where Hpbm in (Select Hpbm from Deleted)在DELPhi里面增加修改没有问题,就是删除的时候出错了,请大家帮忙看看是什么问题

解决方案 »

  1.   

    在MSSQL里面删除也没有问题
    在DELPHI里面删除的时候出现“无法更新定位行,一些值可能在最后一次读取后已更改”
      

  2.   

    是不是删除的时候,没有insertd这个临时表呢?
      

  3.   

    当我写成两个触发器就没有问题,请大家看以下代码
    1.
    CREATE TRIGGER Rig_insEdit_CKmx ON dbo.CKGl_CKMX 
    after INSERT,update
    AS
      update Base_Hp Set Kcsl=Kcsl-(Select sl from Inserted) 
         where HpBm in (Select hpBm from inserted)
      update Base_hp Set Kcsl=kcsl+(Select Sl from Deleted)
         where Hpbm in (Select Hpbm from Deleted)
    2.
    CREATE TRIGGER rig_Del_Ckmx ON dbo.CKGl_CKMX 
    after delete
    AS
      update Base_hp Set Kcsl=kcsl+(Select Sl from Deleted)
         where Hpbm in (Select Hpbm from Deleted)
      

  4.   

    问题虽然解决了,但是
    使用同一个触发器为什么会出现这个问题呢?
    "在MSSQL里面删除没有问题
    但在DELPHI里面删除的时候出现“无法更新定位行,一些值可能在最后一次读取后已更改”请高手指点一下