わざとトランザクションの共有ロックをかける
検証用にSQL Serverでわざとロックをかけた状態を作る
以下のようなテーブルがある
table:users
id name address
int nvarchar(50) nvarchar(50)
セッションを2つ用意する
セッションA
ターミナルなどから実行している場合、そのターミナルは閉じない
code:sql
BEGIN TRANSACTION;
INSERT INTO users VALUES (1, 'AKI', 'TOKYO');
/* BEGINだけしてROLLBACK or COMMITはしない */
セッションB
SELECTを行う
code:sql
SELECT * FROM users;
これでusersテーブルがロックされた状態になる