update corpworker set balance = balance +A.costmoney from corpworder, (select costmoney,workerID from deleted) as A
where corpworder.workerID = A.workerID

解决方案 »

  1.   

    update corpworker 
       set balance = balance + deleted.costmoney 
       from corpworder, deleted
       where corpworder.workerID = deleted.workerID 
      

  2.   

    SQL SERVER里的触发器不是单行的,所以你要改成这样:
    update corpworker 
       set balance = balance + (select sum(costmoney) from deleted)
     where workerID in (select workerID from deleted );TO progame(呵呵呵(傻笑中): 你的写法好像和原来的没有任何不同啊?
      

  3.   

    刚才写的错了, 应该这样:update corpworker x
      set balance = balance + (select sum(costmoney) from deleted where workID = x.workID)
    where workerID in (select workerID 
                       from deleted
                       where workID = x.workID);
      

  4.   

    哈哈,还是有问题, 不好意思:update corpworker x
      set balance = balance + (select sum(costmoney) from deleted where workerID = x.workerID)
    where workerID in (select distinct workerID 
                       from deleted);
      

  5.   

    jouky(马赫)的错误是没有考虑到多纪录的删除. progame(呵呵呵(傻笑中) 写的没错, 就是不如我写的简练. 呵呵
      

  6.   

    谢谢各位,在我的系统中,deleted.costmoney 表达式apply通不过,不知怎回事