考慮下面的SQL:SQL Server中嵌套事務的隔離範圍是什麼?
BEGIN TRAN SET TRANSACTION ISOLATION LEVEL READ COMMITTED INSERT Bands ( Name ) SELECT 'Depeche Mode' UNION SELECT 'Arcade Fire' -- I've indented the inner transaction to make it clearer. BEGIN TRAN SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED SELECT * FROM Bands COMMIT -- What is the isolation level right here? UPDATE Bands SET Name = 'Modest Mouse' WHERE Name = 'Oddest House' COMMIT
總之,我們啓動一個事務,並設置其隔離級別設置爲READ COMMITTED
。然後,我們執行一些隨機SQL並啓動另一個嵌套事務。在此交易中,我們將隔離級別更改爲READ UNCOMMITTED
。然後,我們承諾交易並返回其他交易。
現在,我的猜測是,內部提交後,隔離級別返回到READ COMMITTED
。它是否正確?
這是正確的,我剛剛用sp_lock – 2008-10-21 21:33:15