數據庫事務

什麼是事務(Transaction)

  指訪問並可能更新數據庫中各種數據項的一個程序執行單元(unit),也就是由多個sql語句組成,必須作爲一個整體執行。

  這些sql語句作爲一個整體,一起向系統提交,要麼都執行,要麼都不執行。

語法步驟:

開始事務:BEGIN TRANSACTION

事務提交:COMMIT TRANSACTION

事務回滾:ROLLBACK TRANSACTION


判斷某條語句執行是否出錯:

全局變量@@ERROR

@@ERROR只能判斷當前一條T-SQL語句執行是否有錯,爲了判斷 事務中所有T-SQL語句 是否有錯,我們需要對錯誤 進行累計;

例:SET @errorSum=@errorSum+@@ERROR



BEGIN TRANSACTION 
/*--定義變量,用於累計事務執行過程中的錯誤--*/
DECLARE @errorSum INT 
SET @errorSum=0  --初始化爲0,即無錯誤
/*--轉賬:張三的賬戶少1000元,李四的賬戶多1000元*/
UPDATE bank SET currentMoney=currentMoney-1000
   WHERE customerName='張三'
SET @errorSum=@errorSum+@@error
UPDATE bank SET currentMoney=currentMoney+1000
   WHERE customerName='李四'
SET @errorSum=@errorSum+@@error  --累計是否有錯誤
If @errorSum>0
Begin
	rollback transaction
	 select ‘失敗’
End
Else
Begin
	commit transaction
	select ‘成功’
End

歡迎加入.net技術交流羣.Net技術交流


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章