/****** 对象:  StoredProcedure [dbo].[PROC_Turn]    脚本日期: 09/14/2010 20:30:50 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GOALTER PROCEDURE [dbo].[PROC_GO](@Flag varchar(5),@BillBookNo varchar(20),@MatchBillNo varchar(200) output)
AS
Declare @BillSale_Out  varchar(50),
        @OldTime int ,
        @BillNo_Out varchar(20) ,
        @BillType varchar(20)
set xact_abort on
Begin tran
Select  @BillType='Bill'
/*       转单的同时减少客户的信用额度      */
declare @customername varchar(200)
declare @TotalAccount money
declare @innerkind  varchar(100)
declare  @companyproperty   varchar(500)
declare  @companykind   varchar(500)declare @re varchar(500)  --记录退票的单据号select  @customername= CustomerName,     @TotalAccount= TotalAccount,@re=re       from billbook  where BillNo=@BillBookNo 
declare @credit  money
 select  @credit=credit   ,@companyproperty=companyproperty ,@companykind=companykind  from  customercompany   where companyname=@customername
IF  @companyproperty='XXX'  and isnull(@companykind,'')=''  
begin
  select  1/0endExec PROC_BuildBillNo @BillType,@Flag,@OldTime Output ,@BillSale_Out   Output
Set @MatchBillNo=@BillSale_Out

  update customercompany  set credit=credit-@TotalAccount  where companyname=@customername
 insert into  CREDITLOG( COMPANYNAME, ORIGINALCREDIT,  KIND ,ADDCREDIT )  values          (@customername,@credit,'消费',@totalaccount)
......
......commit tran
 
CREDITLOG表里面我已经看到了插入的日志记录.
但是update customercompany  set credit=credit-@TotalAccount  where companyname=@customername并没有执行.
不清楚是什么问题.
绝大多数是update customercompany  set credit=credit-@TotalAccount  where companyname=@customername执行的,
还有部分没有执行.
事务也没有回滚,那位兄弟知道?