事務的使用

2021-09-08 06:55:33 字數 2678 閱讀 4324

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...