/****** 对象: 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执行的,
还有部分没有执行.
事务也没有回滚,那位兄弟知道?
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执行的,
还有部分没有执行.
事务也没有回滚,那位兄弟知道?
DECLARE @RowCountVar INT
SET @RowCountVar = @@ROWCOUNT
IF @@ROWCOUNT <>1
BEGIN
select 1/0
END