set
ansi_nulls on
setquoted_identifier on
goalter procedure [dbo].[pc_delivergoods]
@outid int
=null output,
@cmd varchar(
10)
=null
, @companyordercode varchar(
50)
=null
,@isconfirm varchar(10)
=null
as if @cmd ='
delivergoods
'begin
begin tran
--更新pdt_price表中的訂購商品的數量
;with orderpriceidinfo
as(select priceid,num from pdt_order where companyordercode
=@companyordercode)
update [product]..[pdt_price]
setreserve
=reserve
-b.num from (select priceid,num from orderpriceidinfo) b
where [product]..[pdt_price].priceid
in(select priceid from orderpriceidinfo);
--更新pdt_detail表中的訂購商品的數量
with orderpdtidinfo
as(select pdtid,sum(num)
asnum from pdt_order where companyordercode
=@companyordercode group by pdtid)
update [product]..[pdt_detail]
setreservenum
=reservenum
-b.num from (select pdtid,num from orderpdtidinfo) b
where [product]..[pdt_detail].pdtid
in(select pdtid from orderpdtidinfo);
--更新訂單狀態
update [co_orde] set isconfirm
=@isconfirm,senddate
=getdate() where companyordercode
=@companyordercode
set @outid=0
if @@error!=0
begin
set @outid =-
1rollback
end
else
begin
commit
end
end
else if @cmd ='
backgoods
'begin
begin tran
--更新pdt_price表中的訂購商品的數量
;with orderpriceidinfo
as(select priceid,num from pdt_order where companyordercode
=@companyordercode)
update [product]..[pdt_price]
setreserve
=reserve
+b.num from (select priceid,num from orderpriceidinfo) b
where [product]..[pdt_price].priceid
in(select priceid from orderpriceidinfo);
--更新pdt_detail表中的訂購商品的數量
with orderpdtidinfo
as(select pdtid,sum(num)
asnum from pdt_order where companyordercode
=@companyordercode group by pdtid)
update [product]..[pdt_detail]
setreservenum
=reservenum
+b.num from (select pdtid,num from orderpdtidinfo) b
where [product]..[pdt_detail].pdtid
in(select pdtid from orderpdtidinfo);
--更新訂單狀態
update [co_orde] set isconfirm
=@isconfirm where companyordercode
=@companyordercode
set @outid=0
if @@error!=0
begin
set @outid =-
1rollback
end
else
begin
commit
end
end
Spring事務(一) Spring事務的使用
事務的經典舉例 某人要在商店使用電子貨幣購買100元的東西,當中至少包括兩個操作 該人賬戶減少100元 商店賬戶增加100元 事務就是要確保以上兩個操作 都能完成 或者 一起取消,否則就會出現100元平白消失或出現的情況。摘自wiki spring事務有兩種方式 程式設計式事務管理 宣告式事務管理 ...
Spring Boot 事務的使用
spring boot 使用事務非常簡單,首先使用註解 enabletransactionmanagement 開啟事務支援後,然後在訪問資料庫的service方法上新增註解 transactional 便可。關於事務管理器,不管是jpa還是jdbc等都實現自介面 platformtransacti...
Spring Boot 事務的使用
spring boot 使用事務非常簡單,首先使用註解 enabletransactionmanagement 開啟事務支援後,然後在訪問資料庫的service方法上新增註解 transactional 便可。關於事務管理器,不管是jpa還是jdbc等都實現自介面 platformtransacti...