SQL サーバーでトランザクションの分離レベルを学習しているときに、問題に遭遇しました。
問題は、このコードを実行した後 (そしてエラーなしで終了した後):
set implicit_transactions off;
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
BEGIN TRAN T1;
SELECT (...)
WAITFOR DELAY '00:00:5'
SELECT (...)
WAITFOR DELAY '00:00:3'
COMMIT TRAN T1;
このクエリを実行したい:
set implicit_transactions off;
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
BEGIN TRANSACTION T2;
INSERT (...)
INSERT (...)
COMMIT TRANSACTION T2;
しかし、「クエリを実行しています」と表示されるだけで、何もしません。最初のトランザクションが終了した後も、テーブルのロックが何らかの形で継続しているためだと思います。誰か助けてくれませんか?もちろん、選択と挿入は同じテーブルを参照します。