如果我在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中的并发事务管理