SQL Server 事務及回滾事務
第一種:
<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->declare @iErrorCount int
set @iErrorCount = 0
begin tran Tran1
insert into t1(Id, c1) values(1,'1')
set @iErrorCount=@iErrorCount+@@error
insert into t1(Id, c1) values('XX2','2')
set @iErrorCount=@iErrorCount+@@error
if @iErrorCount=0
begin
COMMIT TRAN Tran1 --執行事務
end
else
begin
ROLLBACK TRAN Tran1 --回滾事務
end
set @iErrorCount = 0
begin tran Tran1
insert into t1(Id, c1) values(1,'1')
set @iErrorCount=@iErrorCount+@@error
insert into t1(Id, c1) values('XX2','2')
set @iErrorCount=@iErrorCount+@@error
if @iErrorCount=0
begin
COMMIT TRAN Tran1 --執行事務
end
else
begin
ROLLBACK TRAN Tran1 --回滾事務
end
第二種:
<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->Begin Try
Begin Tran Tran1
insert into t1(Id, c1) values(1,'1')
insert into t1(Id, c1) values('XX2','2') --此句產生錯誤
COMMIT TRAN Tran1
END Try
Begin Catch
raiserror 50005N'出錯了'
ROLLBACK TRAN Tran1 ---出錯後呼叫回滾
END Catch
Begin Tran Tran1
insert into t1(Id, c1) values(1,'1')
insert into t1(Id, c1) values('XX2','2') --此句產生錯誤
COMMIT TRAN Tran1
END Try
Begin Catch
raiserror 50005N'出錯了'
ROLLBACK TRAN Tran1 ---出錯後呼叫回滾
END Catch
第三種:
<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->SET XACT_ABORT ON ----語句產生執行時錯誤,則整個事務將終止並回滾。
Begin Tran
INSERT INTO t1(Id, c1) VALUES(1,'1')
INSERT INTO t1(Id, c1) VALUES('XX2','2') --此句產生錯誤時,就會回滾整個事務
Commit Tran
Begin Tran
INSERT INTO t1(Id, c1) VALUES(1,'1')
INSERT INTO t1(Id, c1) VALUES('XX2','2') --此句產生錯誤時,就會回滾整個事務
Commit Tran
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-671261/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- T-SQL——關於事務回滾的方式SQL
- sql server中巢狀事務*SQLServer巢狀
- sqlserver遇到回滾事務的操作策略SQLServer
- 關於事務回滾註解@Transactional
- Spring Data JPA中事務回滾意外RollbackExceptionSpringException
- MySQL實現事務的提交和回滾MySql
- 不能回滾的Redis事務還能用嗎Redis
- SQL事務SQL
- 客戶端登陸logout操作,事務回滾客戶端Go
- Spring事務不能回滾的深層次原因Spring
- MySql事務無法回滾的原因有哪些MySql
- spring事務增強,事務回滾如何判斷?希望在前端上有個提示Spring前端
- SQL Server中存在真正的“事務巢狀”SQLServer巢狀
- SQL--事務SQL
- 關於ORACLE大型事務回滾的幾個點Oracle
- openGauss 子事務併發回滾流程最佳化
- Oracle vs PostgreSQL,研發注意事項(3)- 事務回滾之UPDATE操作解析OracleSQL
- 瞭解SQL Server觸發器及觸發器中的事務AWSQLServer觸發器
- 事務及索引索引
- SQL筆記(14)——事務SQL筆記
- MS SQL Server資料庫事務鎖機制分析(轉)SQLServer資料庫
- 命令(XA ROLLBACK) 讓儲存叢集回滾GT 的事務分支
- 為什麼catch了異常,但事務還是回滾了?
- 日常Bug排查-應用Commit報錯事務並沒有回滾MIT
- Sql Server 資料庫事務與鎖,同一事務更新又查詢鎖?期望大家來解惑SQLServer資料庫
- 十、Redis事務、事務鎖Redis
- 分散式事務之Spring事務與JMS事務(二)分散式Spring
- 什麼是事務、事務特性、事務隔離級別、spring事務傳播特性?Spring
- 【JAVA高階】——吃透JDBC中的事務及事務的封裝JavaJDBC封裝
- MSSQL server分散式事務解決方案SQLServer分散式
- MySQL事務(一)認識事務MySql
- Spring事務專題(四)Spring中事務的使用、抽象機制及模擬Spring事務實現Spring抽象
- etcd分散式鎖及事務分散式
- 事務
- Oracle Gateway for SQL Server時2PC分散式事務異常處理OracleGatewaySQLServer分散式
- spring事務裡面開啟執行緒插入,報錯了是否會回滾?Spring執行緒
- 筆記:DB常用sql列印+事務使用筆記SQL
- 分散式事務之資料庫事務與JDBC事務實現(一)分散式資料庫JDBC
- SQL Server 表的管理_關於事務操作的詳解(案例程式碼)SQLServer