0
當我更新列級聯表更新許多其他表(並且其他表具有在該列上強制執行參照完整性的外鍵)的值時,我取消該操作?整個操作是否被視爲交易並回滾?我正在取消Sql Management Studio。當sql server級聯更新並取消操作時會發生什麼?
當我更新列級聯表更新許多其他表(並且其他表具有在該列上強制執行參照完整性的外鍵)的值時,我取消該操作?整個操作是否被視爲交易並回滾?我正在取消Sql Management Studio。當sql server級聯更新並取消操作時會發生什麼?
是的。這就是ACID中的A(tomicity)全是關於
所以如果我沒有明確地在事務中包裝一堆語句,SQL服務器本身隱式地將這些語句(單獨)包裝在一個事務中?級聯/參照完整性雖然分解爲多個更新,但被視爲單個事務? – SFun28
@SFun28:是的,除非您有明確的事務,否則每個SQL語句本身都是隱式事務 –
即使導致其他基礎操作,被取消的單個語句也會以原子方式處理。你發佈的一組聲明,沒有事務上下文?沒有機會。您可以輕鬆測試:'INSERT ...; WAITFOR DELAY'00:20:00';'然後在一分鐘後取消取消。檢查桌子;你的INSERT發生了。 –