序:老早以前,写过一篇《嵌套事务(一):.NET中嵌套事务运用的一点思考》
2011 -12 -2 日 新加部分
今天又遇见了以前遇到的问题,一个聪明的人不应该将同一个错误出现两次错误,但事实上来,在我身上出了好几次,就其原因是对SqlServer 事务的提交与回滚没有深刻的认识。
问题:
1. System.Data.SqlClient.SqlException (0x80131904): EXECUTE 后的事务计数指示 BEGIN 和 COMMIT 语句的数目不匹配。上一计数 = 1,当前计数 = 0。
2. EXECUTE 后的事务计数指示 BEGIN 和 COMMIT 语句的数目不匹配。上一计数 = 0,当前计数 = 1。
后面的内容,是我之前写的东西,主要是一些测试代码,但是呢,我没有很深入的理解。现在直接说清楚本质的东西,把后面的精华再提上来说。
- 提交的事务不能撤销或回滚。
- 当不存在打开的事务时,@@trancount 等于 0。
- 执行 begin tran [tranName]语句将 @@trancount 增加 1。<