Betrachten Sie das folgende SQL:Wie groß ist der Isolationsumfang in geschachtelten Transaktionen in 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
Insgesamt starten wir eine Transaktion und stellen Sie die Isolationsstufe auf READ COMMITTED
. Wir führen dann ein zufälliges SQL aus und starten eine andere verschachtelte Transaktion. In dieser Transaktion ändern wir die Isolationsstufe in READ UNCOMMITTED
. Wir begehen diese Transaktion und kehren zum anderen zurück.
Nun, meine Vermutung ist, dass nach dem inneren Festschreiben die Isolationsstufe zu READ COMMITTED
zurückkehrt. Ist das richtig?
das ist korrekt Ich habe gerade mit sp_lock getestet –