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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 在SQL SERVER中實現事務的部分回滾SQLServer
- java 事務提交/回滾Java
- SQL Server 查出未提交事務(長事務)SQLSQLServer
- ORACLE 死事務的回滾Oracle
- T-SQL——關於事務回滾的方式SQL
- Spring事務回滾情況Spring
- oracle檢視回滾的事務Oracle
- 使用FLASHBACK_TRANSACTION_QUERY查詢回滾事務SQLSQL
- sqlserver遇到回滾事務的操作策略SQLServer
- 關於事務回滾註解@Transactional
- Spring中@Transactional事務回滾例項及原始碼Spring原始碼
- sql server中巢狀事務*SQLServer巢狀
- sql server事務全攻略SQLServer
- SQL SERVER 事務處理(一)SQLServer
- sql server 事務處理(二)SQLServer
- 不能回滾的Redis事務還能用嗎Redis
- MySQL實現事務的提交和回滾MySql
- JDBC 事務(二)回滾到儲存點JDBC
- DBUNITS的單元測試事務回滾
- WebForm中C#事務回滾的例子WebORMC#
- SQL Server 事務日誌傳輸SQLServer
- SQL Server中的事務與鎖SQLServer
- SQL Server事務日誌介紹SQLServer
- SQL事務SQL
- MySql事務無法回滾的原因有哪些MySql
- 關於Spring事務回滾的問題Spring
- Spring Transaction詳解 – 手動回滾事務Spring
- long長事務回滾的模擬與定位
- zt_Oracle事務rollback回滾時間估算Oracle
- Spring Data JPA中事務回滾意外RollbackExceptionSpringException
- spring事務增強,事務回滾如何判斷?希望在前端上有個提示Spring前端
- spring事務不回滾Spring
- SQL Server事務的隔離級別SQLServer
- MS SQL Server 事務日誌介紹SQLServer
- Spring事務不能回滾的深層次原因Spring
- 關於ORACLE大型事務回滾的幾個點Oracle
- SQL--事務SQL
- Oracle vs PostgreSQL,研發注意事項(3)- 事務回滾之UPDATE操作解析OracleSQL