>>--EXEC SQL--SET TRANSACTION ISOLATION-------------------> >-------.-READ UNCOMMITTED-.---------END-EXEC------------>< +-READ COMMITTED---+ +-REPEATABLE READ--+ +-SERIALIZABLE-----+
SET TRANSACTION ISOLATION 文により、現在の接続のトランザクション分離レベルが ODBC によって指定された分離レベルモードの 1 つに設定されます。
トランザクション分離レベルの設定に応じて、トランザクションは次のように相互に作用することができます。
これらの状況は、ロックで制御できます。ロックとは、1 つのトランザクションが完了するまで他のトランザクションを待機させること、つまり、並行処理を制限する (ペシミスティック並行とも呼ぶ) ことです。または、この状況が発生した場合にトランザクションを強制的にロールバックすること、つまり、並行処理への影響を減らして作業を強制的に繰り返す (オプティミスティック並行とも呼ぶ) ことです。
READ UNCOMMITED モードでは、ダーティ読み取り、反復不可読み取り、および、ファントムがすべて可能です。
READ COMMITED モードでは、ダーティ読み取りは不可能ですが、反復不可読み取りとファントムは可能です。
REPEATABLE READ モードでは、ダーティ読み取りと反復不可読み取りは不可能ですが、ファントムは可能です。
SERIALIZABLE モードでは、ダーティ読み取り、反復不可読み取り、および、ファントムがすべて不可能です。
注:
ドライバによっては、ODBC によって定義される分離レベルがすべてサポートされているわけではありません。 ドライバでサポートされないモードを設定する場合は、そのモードに応じて SQLCODE および SQLSTATE を設定します。
EXEC SQL SET TRANSACTION ISOLATION READ UNCOMMITTED END-EXEC