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上面是这个触发器的一部分,当触发器包含这一部分时,程序都会出错.
在更新记录和增加记录时错误不一样,更新时过一会程序会产生超时错误,而新增时就永远停下来了.
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上面是这个触发器的一部分,当触发器包含这一部分时,程序都会出错.
在更新记录和增加记录时错误不一样,更新时过一会程序会产生超时错误,而新增时就永远停下来了.
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货