可能重複:
What happens to an uncommitted transaction when the connection is closed?的SQL Server的連接損失
如果失去在交易中間的連接,會發生什麼?
我想,如果事務從未提交併且可以再次執行,但是......有沒有辦法將連接並將其回滾到已保存的點並繼續執行已有的事務?
親切的問候。
可能重複:
What happens to an uncommitted transaction when the connection is closed?的SQL Server的連接損失
如果失去在交易中間的連接,會發生什麼?
我想,如果事務從未提交併且可以再次執行,但是......有沒有辦法將連接並將其回滾到已保存的點並繼續執行已有的事務?
親切的問候。
如果在事務處理中失去連接,則不能再從其他連接重新輸入此事務。如果連接被刪除,SQL Server將自動回滾所有未提交的事務。因此,如果發生這種情況,只需重新連接,並且您會發現數據庫處於交易開始前的相同狀態(假設當然沒有其他用戶可能已經在其間改變了它)。
通常,該交易將被回滾。無論是客戶端斷開的CommandTimeout或服務器重新啓動。
這是原子在ACID
「撿」它離開的地方就沒有意義
事務的能力長壽命TXN沒有*根本*問題。 DBMS可以像長期運行的「普通」TXN一樣實施它們。即它將不得不保留所有TXN持有/需要的鎖/行版/ ...。唯一的事情是:這是非常不切實際的。墜毀的應用程序需要手動清理,這會佔用服務器資源,並且在大多數情況下使用SQL數據庫的情況下,提交數小時甚至數天前的TXN的機會將很少到不存在。 –
哪些連接,你說話的。只有連接到sql-server或您的客戶端到服務器的網絡連接。這甚至可能使用某些VPN連接等。 –
與sql-server的連接。 – vtortola
相關:http://stackoverflow.com/q/1539564/1569 –