乙個簡單的事務

2021-09-08 03:46:52 字數 2200 閱讀 1152

從這篇開始要總結事務了,我們就從乙個簡單的事務示例開始吧。下面這個示例首先定義了乙個事務,然後把關於乙個新訂單的資料記錄到資料庫中。示例**如下:

use

tsqlfundamentals2008;

go--

事務--

乙個簡單的事務

begin

tran;--

宣告乙個變數,儲存新的orderid

declare

@neworderid

asint=0

;--將乙個新訂單插入到sales.orders表中

insert

into

sales.orders

( custid ,

empid ,

orderdate ,

requireddate ,

shippeddate ,

shipperid ,

freight ,

shipname ,

shipaddress ,

shipcity ,

shipregion ,

shippostalcode ,

shipcountry

)values ( 85 , --

custid - int

5 , --

empid - int

'20090212

' , --

orderdate - datetime

'20090301

' , --

requireddate - datetime

'20090216

' , --

shippeddate - datetime

3 , --

shipperid - int

32.38 , --

freight - money

n'ship to 85-b

' , --

shipname - nvarchar(40)

n'6789 rue de l

' , --

shipaddress - nvarchar(60)

n'abbaye

' , --

shipcity - nvarchar(15)

n'reims

' , --

shipregion - nvarchar(15)

n'10345

' , --

shippostalcode - nvarchar(10)

n'france'--

shipcountry - nvarchar(15)

);

--將新的訂單id儲存到變數中

set@neworderid

=scope_identity(); --

或者@@identity

--返回新的訂單id

select

@neworderid

asneworderid;

--將新訂單的訂單明細插入到sales.orderdetails表中

insert

into

sales.orderdetails( orderid ,productid ,unitprice ,qty ,discount)

values ( @neworderid,11 ,14.00 ,12 ,0.000

), (

@neworderid,42,9.80,10,0.000

), (

@neworderid,72,34.80,5,0.000

);--

提交事務

commit

tran;

插入資料後的效果如下圖:

我們可以看到,成功插入了乙個訂單和其三筆訂單明細。

測試完成後,我們需要執行以下**清理資料。

--

清理資料

delete

from sales.orderdetails where orderid>

11077

;delete

from sales.orders where orderid>

11077

;dbcc checkident('

sales.orders

',reseed,11077); --

重置標識值

乙個簡單的跨庫事務問題

來自 最近在做乙個專案,其中乙個方案涉及到跨庫事務一致性問題,是乙個簡單的場景。這個專案是對老的業務進行效能提公升,業務邏輯基本上保持不變。主要是在於新專案採用了分庫分表的設計,從而提公升了效能。考慮到專案發布之後可能存在風險,採取了新老系統的並行方案。這個系統的業務比較簡單 接收來自外部的資料,然...

Spring 在乙個事務中開啟另乙個的事務

什麼是事務?可以參考我的這篇部落格!spring boot 怎麼使用spring的事務控制機制?可以參考我的這篇部落格!通常的情況下,一般的事務直接在service類上新增 transactional註解,spring就會幫我們替所有方法自動生成事務。但是在某些情況下,很少出現的。我們希望在乙個方法...

spring 乙個簡單例項之對事務的支援

spring 對事務的支援 事務簡介 滿足一下四個條件 第一 原子性 第二 一致性 第三 隔離性 第四 永續性 程式設計式事務管理 spring 提供的事務模版類 org.springframework.transaction.support.transactiontemplate 事務管理器 or...