有人可以解釋何時以及爲什麼使用提交? http://msdn.microsoft.com/en-us/library/ms190295.aspx交易提交?
。
1)在TableX的recordM在tableY recordN
2)更新
3)在tableZ recordO更新
4)更新使用提交這裏
..
在2)失敗並且recordN未更新的情況,則回滾並且不繼續到3)和4)提交?是你在哪裏使用它?
有人可以解釋何時以及爲什麼使用提交? http://msdn.microsoft.com/en-us/library/ms190295.aspx交易提交?
。
1)在TableX的recordM在tableY recordN
2)更新
3)在tableZ recordO更新
4)更新使用提交這裏
..
在2)失敗並且recordN未更新的情況,則回滾並且不繼續到3)和4)提交?是你在哪裏使用它?
當一個或多個操作(事務)完成時使用提交,並且您希望更改數據庫。
在你的榜樣,如果2)失敗了,你應該做的回滾和它們的操作1)將撤消,因此,將讓您的數據庫保持一致
如。如果你有一個書店系統,只要你賣一本書,你必須做一些操作:
你會希望所有的操作都成功完成,或者什麼都不做。 所以你應該:
如果做錯了事,回滾(撤銷)所有
當您想將對偶操作視爲一項操作時始終使用提交。這意味着當至少有一次失敗時,在提交之前全部恢復到狀態。
這是非常有用的,因爲一些行爲應該被視爲原子操作,例如。銀行業務。
我想,它自動每次更新後自動提交?你可以在SQL Server中打開或關閉此功能嗎? – 001 2011-03-24 07:12:04
默認情況下它會自動提交,是的,你可以使用SET IMPLICIT_TRANSACTION OFF,但通常你會使用api來關閉它。如果我是正確的,每當你調用transaction.begin()它會關閉自動提交 – Kossel 2011-03-24 07:15:45