ALTER          Trigger AdjustStorageGoodsNumber
On OperationExpand --单据明细表
For Insert,delete,update
As 
   
    Declare @Numbers int
    Declare @SourceBill varchar(30)
    Declare @SourceID int
    Declare @OperationType int    Declare @InsertCursor Cursor /*当修改了明细表上的金额时,把主单据上的对应总金额做相应的修改*/
    Declare @SumMoney Money
    Set @InsertCursor= Cursor Scroll Keyset For
    Select  SumMoney,Bill
    From inserted 
    union
    Select  -SumMoney,Bill
    From deleted 
       
    Open @InsertCursor
   
    Fetch  From @InsertCursor Into
           @SumMoney,@SourceBill
           
    While  @@fetch_status =0 
        Begin
           Update OperationMain --单据主表
           Set BalancedMoney=BalancedMoney+@SumMoney
           Where (ID =@SourceBill) 
   Fetch Next From @InsertCursor Into
      @SumMoney,@SourceBill
        End
    Close @InsertCursor上面是这个触发器的一部分,当触发器包含这一部分时,程序都会出错.
在更新记录和增加记录时错误不一样,更新时过一会程序会产生超时错误,而新增时就永远停下来了.