2012-10-24 29 views

回答

3

自我在begin transaction manual解釋說:

如果遇到錯誤,在BEGIN TRANSACTION 後所做的所有數據修改可以回滾到數據返回到已知狀態的一致性 。

答案是否定的:這是不可能的。對於您的情況,TableA和TableB插入都處於同一個事務中,由於ACID行爲,如果在插入之間發生「失電」,當數據庫上升時,TableA插入被回滾。記住原子的A。

0

它不會發生,因爲所有的活動都是先寫入事務日誌,而不是實際的數據文件,並且在發生電力故障的情況下,當sql server啓動時它將通過事務日誌並回滾任何未完成的事務(您會注意到啓動速度有多慢,或者數據庫將在恢復模式中一段時間​​)。

數據文件在一段時間之後被寫入者寫入,然後該內存在內存中作爲髒頁面可用。

相關問題