如果我在MS SQL中的Begin Transaction和Commit事務之間附上查詢,如果我中止或停止查詢的執行,會發生什麼情況。將執行ROLLBACKED期間所做的所有更改。?在MS SQL中開始事務並提交事務
0
A
回答
0
這取決於你的代碼。只要您的事務存在,所有更改都將等待回滾或提交。您可能要查看this。
0
編號交易將仍然有效 - 你沒有回滾,是嗎? :) 運行這個例子,看看會發生什麼。如果您在事務中斷時,您會看到值2在表中,但您必須回滾或提交。直到調用類似ROLLBACK TRANSACTION
或COMMIT TRANSACTION
select 1 as x into #xxx
GO
begin transaction
insert into #xxx(x) select 2
-- ctrl+break before time runs out.
waitfor delay '00:00:10'
commit transaction
-- now try this:
select * from #xxx
rollback transaction
select * from #xxx
1
您的交易可以保持打開,或直到SQL需要它的一些行動。
更多信息:
- SQL Server and connection loss in the middle of a transaction
- What happens to an uncommitted transaction when the connection is closed?
- What happens if you don't commit transaction in a database (say SQL Server)
其實我喜歡大測試更新或更正時,利用這一優勢。你可以有這樣的事情:
-- BEGIN TRANSACTION
-- ROLLBACK TRANSACTION
-- COMMIT TRANSACTION
/*
A bunch of SQL code here
*/
然後你就可以突出顯示/運行BEGIN TRANSACTION
,然後運行整個腳本。如果您對結果滿意,您可以突出顯示/運行COMMIT TRANSACTION
。如果沒有,運行ROLLBACK TRANSACTION
。由於這些行被註釋掉了,除非您明確突出顯示並運行它們,否則它們不會影響整個事務。
相關問題
- 1. SQL開始事務沒有提交
- 2. 如何使用事務(開始事務,提交事務)?
- 3. ExecuteNonQueryAsync並在SQL事務中提交
- 4. 開始新的事務是否強制當前事務提交?
- 5. 在羣中刪除 - 自動提交與開始/提交事務
- 6. SQL事務回滾並提交
- 7. 在SQL中隔離提交事務
- 8. 在@Transactional事務中提交
- 9. 等待其他事務在開始另一個事務之前提交/回滾?
- 10. 熱開始,回滾,在sqlite中提交一個事務與sqlite
- 11. Spring aop事務未提交事務
- 12. JDBC事務開始
- 13. SQL Server事務我如何提交我的事務
- 14. 讀取事務內部未提交的數據(MS SQL Server 2008)
- 15. 在當前事務之外提交事務(如Oracle中的自治事務)
- 16. SQL Server 2005事務提交被忽略
- 17. 沒有「開始事務」的單個「提交」語句
- 18. SQL事務並不在vb.net
- 19. 部分提交MySQL事務?
- 20. 未提交SQLite事務
- 21. 有未提交的事務
- 22. MySQL的:事務被提交
- 23. 更新後提交事務
- 24. SQL回滾事務沒有開始交易
- 25. 事務回調或提交()
- 26. spring mybatis事務提交
- 27. TransactionFailureException:無法提交事務
- 28. 如何在EJB中提交事務?
- 29. 在rails中提交回滾事務
- 30. MS SqlServer中的併發事務管理