SQL Server?娲�?????????伪?
???????????? ???????[ 2015/3/18 11:50:17 ] ????????????? ??????? ?伪?
???????????????????????2???伪???娲�????
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER PROCEDURE [dbo].[CancelOrderBySystem]
AS
BEGIN
declare /*????????*/
@Status varchar(100)?? --??
@TimeNow datetime?? --??????
@TradeID varchar(50)?? --????????
@GoodsID int?? --???ID
@Num int?? --????
@SkuID int --???ID
set @Status='TRADE_CLOSED_BY_SYSTEM' /*????????*/
set @TimeNow=getdate()
begin transaction; --??????????
--????????????????
--??????????????????????????卸????????泄??
--?????泄????????卸??????????泄????????????
--????泄??????卸?霉??????????????????????????
--??????????
declare cancelOrder_Cursor cursor for --?????伪?
select TradeID from WxTrade where Status='WAIT_BUYER_PAY' and OutTime<=@TimeNow
OPEN cancelOrder_Cursor --???伪?
FETCH NEXT FROM cancelOrder_Cursor --????伪???????????
into @TradeID --???????????伪?????械????????
----------------------???伪?????????begin --------------------------
WHILE (@@FETCH_STATUS = 0) --FETCH?????谐??
BEGIN
--??????????
update WxTrade set Status=@Status??CloseTime=@TimeNow where TradeID=@TradeID
--???????????妫�???????????????????????
declare orderDetail_Cursor cursor for --?????伪?
select GoodsID??SkuID??Num from WxOrder where TradeID=@TradeID
OPEN orderDetail_Cursor --???伪????????
FETCH NEXT FROM orderDetail_Cursor --????伪???????????
into @GoodsID??@SkuID??@Num --???????????伪?????械????ID?????ID??????
----------------------???????伪????????begin ----------------------
------------------------------------------------------------------------
WHILE (@@FETCH_STATUS = 0) --FETCH?????谐??
BEGIN
if(@SkuID is null)
BEGIN
--??泄????????卸??????????泄???????????妫�??????
if not exists(select SkuID from [Sku] where GoodsID=@GoodsID)
BEGIN
update Goods set Quantity=Quantity+@Num where GoodsID=@GoodsID
END
END
else
BEGIN
--????泄??????卸?霉??????????????????????????
if exists(select SkuID from [Sku] where SkuID=@SkuID)
BEGIN
update [Sku] set ItemQuantity=ItemQuantity+@Num where SkuID=@SkuID
update Goods set Quantity=Quantity+@Num where GoodsID=@GoodsID
END
END
FETCH NEXT FROM orderDetail_Cursor --????伪??????校????????
into @GoodsID??@SkuID??@Num --???????????伪?????械????ID?????ID??????
END
CLOSE orderDetail_Cursor --????伪????????
DEALLOCATE orderDetail_Cursor --????伪????????
----------------------???????伪????????end ----------------------
----------------------------------------------------------------------
FETCH NEXT FROM cancelOrder_Cursor --????伪??????校?????????
into @TradeID --???????????伪?????械????????
End
CLOSE cancelOrder_Cursor --????伪?????????
DEALLOCATE cancelOrder_Cursor --????伪?????????
----------------------???伪?????????end --------------------------
if(@@error>0)
begin
rollback transaction
return 0
end
else
begin
commit transaction
return 1
end
END
??????

???路???
??????????????????
2023/3/23 14:23:39???写?貌??????????
2023/3/22 16:17:39????????????????????些??
2022/6/14 16:14:27??????????????????????????
2021/10/18 15:37:44???????????????
2021/9/17 15:19:29???路???????路
2021/9/14 15:42:25?????????????
2021/5/28 17:25:47??????APP??????????
2021/5/8 17:01:11