欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

请帮忙看看下面存储过程,有什么语法异常

更新时间: 2014-01-05 02:17:21 责任编辑: Author_N1

 

请大虾帮忙看看下面存储过程,有什么语法错误
Create Procedure SP_BindCoupons(
@actID INT, --活动ID
@cardNo int, --卡号
@count10 int, --生成的10元券数量
@count20 int, --生成的10元券数量
@count30 int --生成的10元券数量
)
AS
DECLARE @winCount10 int,
        @winCount20 int,
        @winCount30 int,
        @nextWinNo int,
        @tempValue int,
        @errorValue nvarchar(100),
        @errorCode int
    Begin
           Set NOCOUNT ON;
           Set XACT_ABORT ON;
           begin tran bindCoupon  --开始事务bindCoupon 
           --查询该活动可生成的10元券数量
select @winCount10=(wc.WinningEnd-wc.NextWinningNo),@nextWinNo=wc.NextWinningNo from Winning_Config wc where wc.ID=@actID and wc.WinningType=10
Set @tempValue=1
if(@winCount10>=@count10)
begin 
--绑定10元券
while(@tempValue<=@count10)
begin
INSERT INTO [Winning_List]([ActivityID],[WinningNo],[WinningType],[AccID],[Status],[CardNo],[UseDate]
,[Cdate]
,[UseType])
 VALUES
(@actID,@nextWinNo+@tempValue,10,'',0,@cardNo,'1900-01-01 00:00:00.000',getdate(),null)

Set @tempValue=@tempValue+1

end
--修改代金券的下一个券号
UPDATE [Winning_Config] SET [NextWinningNo] = @nextWinNo+@winCount10 WHERE ID=@actID
end
else
begin
Set @errorValue+='该活动10元券数量不足;'
Set @errorCode=1
end  
end   

--查询该活动可生成的20元券数量
select @winCount20=(wc.WinningEnd-wc.NextWinningNo),@nextWinNo=wc.NextWinningNo from Winning_Config wc where wc.ID=@actID and wc.WinningType=20
Set @tempValue=1
if(@winCount20>=@count20)
begin 
--绑定20元券
while(@tempValue<=@count20)
begin
INSERT INTO [Winning_List]([ActivityID],[WinningNo],[WinningType],[AccID],[Status],[CardNo],[UseDate]
,[Cdate]
,[UseType])
 VALUES
(@actID,@nextWinNo+@tempValue,20,'',0,@cardNo,'1900-01-01 00:00:00.000',getdate(),null)

Set @tempValue=@tempValue+1
end
--修改代金券的下一个券号
UPDATE [Winning_Config] SET [NextWinningNo] = @nextWinNo+@winCount20 WHERE ID=@actID
end
else
begin
Set @errorValue+='该活动20元券数量不足;'
Set @errorCode=1
end  
end   
 
            
--查询该活动可生成的30元券数量
select @winCount30=(wc.WinningEnd-wc.NextWinningNo),@nextWinNo=wc.NextWinningNo from Winning_Config wc where wc.ID=@actID and wc.WinningType=30
Set @tempValue=1
if(@winCount30>=@count30)
begin 
--绑定30元券
while(@tempValue<=@count30)
begin
INSERT INTO [Winning_List]([ActivityID],[WinningNo],[WinningType],[AccID], [Status],[CardNo],[UseDate]
,[Cdate]
,[UseType])
 VALUES
(@actID,@nextWinNo+@tempValue,30,'',0,@cardNo,'1900-01-01 00:00:00.000',getdate(),null)

Set @tempValue=@tempValue+1
end
--修改代金券的下一个券号
UPDATE [Winning_Config] SET [NextWinningNo] = @nextWinNo+@winCount30 WHERE ID=@actID
end
else
begin
Set @errorValue+='该活动30元券数量不足;'
Set @errorCode=1
end  
end 

           if @@error<>0  --判断是否出错   
               begin --如果出错  
                    rollback   tran  bindCoupon  -- 回滚事务到bindCoupon 的还原点
                    commit   tran  bindCoupon 
               end 
           else  --没有出错               
               commit  tran  bindCoupon 
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:17:21
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/8022/
本文WWW.DOC100.NET DOC100.NET版权所有。