SQL Server 2005のデフォルト分離レベル
規定値はREAD_COMMITTEDなんですね。これは2008でも変わらないようだ。
こんなことも知らなかった自分に((((;゜Д゜)))ですわ。
試しに2005で
-- テスト用テーブルを作成。 CREATE TABLE TEST(id int, amt int) GO -- テスト用データを挿入。 INSERT INTO TEST VALUES (1, 100); INSERT INTO TEST VALUES (2, 200); INSERT INTO TEST VALUES (3, 300); GO BEGIN TRAN UPDATE TEST SET amt = 500 WHERE id = 1
した後に、別のセッションで
SELECT * FROM TEST;
とやったら、延々と待ってた。((((;゜Д゜)))
例外処理とか間違えたら死ねるな。
ていうか、デフォルトのREAD_COMMITTEDのままでは普通運用しないのか?