スナップショット分離」を参照してください。COMMITTED他のトランザクションで変更されたが、まだコミットされていないデータを、ステートメントで読み取れないように指定します。リードを防ぐことができます。現在のトランザクション内にある各ステートメント間では、他のトランザクションによるデータの変更が可能です。データが発生することがあります。既定のオプションです。オプションの設定によって異なります。Engineでは共有ロックが使用され、現在のトランザクションでの読み取り操作中に他のトランザクションによって行が変更されるのを防ぐことができます。ステートメントが他のトランザクションで変更された行を読み取ろうとしても、そのトランザクションが完了するまでステートメントはブロックされます。いつ解放されるかは、共有ロックの種類によって決まります。行ロックは、次の行が処理される前に解放されます。ロックはステートメントの終了時に解放されます。Engineでは行のバージョン管理が使用され、各ステートメントでは、トランザクション全体で一貫性のあるデータのスナップショットが使用されます。このスナップショットは、ステートメント開始時点に存在したデータのスナップショットです。ロックは、他のトランザクションがデータを更新するのを防ぐために使用されることはありません。transactions.重要トランザクション分離レベルを選択しても、データ変更を保護するために獲得したロックは影響を受けません。トランザクションでは、設定されたトランザクション分離レベルに関係なく、常に、そのトランザクションで変更するデータについて排他ロックを獲得し、トランザクションが完了するまでそのロックを保持します。分離レベルで作成された更新では行のバージョンを使用して更新する行を選択します。トランザクション分離レベルでは主に、読み取り操作に対して、他のトランザクションによって行われる変更の影響からの保護レベルを定義します。詳細については、「トランザクションのロックおよび行のバージョン管理ガイド」を参照してください。データをサポートします。データは、トランザクションの開始時に存在していたデータのバージョンとトランザクション的に一致しています。ヒントを使用して共有ロックを要求することもできます。コマンドを実行する接続のみが許可されます。完了するまで、そのデータベースには他に開かれた接続が存在しないようにする必要があります。モードにする必要はありません。READ他のトランザクションで変更されたがコミットされていないデータを、ステートメントで読み取れないように指定すると共に、現在のトランザクションが完了するまでは現在のトランザクションで読み取ったデータを他のトランザクションが変更できないように指定します。completes.トランザクションの各ステートメントで読み取ったすべてのデータには共有ロックが設定され、トランザクションが完了するまでその状態が保持されます。これにより、現在のトランザクションで読み取った行は、他のトランザクションで変更できなくなります。他のトランザクションでは、現在のトランザクションで実行されているステートメントの検索条件に一致する行を新しく挿入することができます。その後、現在のトランザクションでステートメントが再試行された場合は新しい行が取得されるので、結果としてファントム読み取りが発生します。分離レベルよりも低くなります。このオプションは、必要な場合にのみ使用してください。necessary.SNAPSHOTSNAPSHOTトランザクション内の任意のステートメントから読み取られるデータは、トランザクション開始時点に存在していたトランザクション的に一致するバージョンのデータであることを指定します。データの変更は、トランザクションの開始前にコミットされたものだけが認識されます。現在のトランザクションの開始後に、他のトランザクションによってデータが変更されても、現在のトランザクションを実行しているステートメントではデータの変更は認識されません。これでは、トランザクションのステートメントが、コミットされたデータのトランザクションの開始時点でのスナップショットを取得する効果があります。トランザクションではデータの読み取り時にロックが要求されません。トランザクションでデータが読み取られている間も、他のトランザクションによるデータの書き込みはブロックされません。トランザクションではデータを読み取ることができます。トランザクションではロックが要求されます。許可が与えられるとすぐロックは解除されます。設定する必要があります。設定する必要があります。分離レベルを設定できません。設定すると、トランザクションは中止されます。トランザクションの開始は、初めてデータにアクセスした時点からになります。分離レベルで実行されているトランザクションでは、そのトランザクションで行った変更が認識されます。ステートメントを実行した場合、結果セットには変更後のデータが含まれます。データは、ステートメントの開始時ではなく、トランザクションの開始時に存在していたデータのバージョンとトランザクション的に一致します。statement.SERIALIZABLESERIALIZABLE次のことを指定します。following:他のトランザクションで変更されたが、まだコミットされていないデータは、ステートメントで読み取れない。transactions.現在のトランザクションが完了するまで、現在のトランザクションで読み取ったデータは他のトランザクションで変更できない。completes.現在のトランザクションが完了するまで、現在のトランザクションの任意のステートメントで読み取ったキー範囲に該当するキー値の行は、他のトランザクションで新しく挿入できない。completes.トランザクションで実行される各ステートメントの検索条件に一致するキー値の範囲には、範囲ロックが設定されます。これにより、現在のトランザクションで実行されるステートメントの処理対象となる行はブロックされ、他のトランザクションによる行の更新や挿入ができなくなります。度目も同じ行セットが読み取られます。範囲ロックはトランザクションが完了するまで保持されます。これではキー範囲全体がロックされ、トランザクションが完了するまでその状態が保持されるので、これは最も制限の厳しい分離レベルといえます。このオプションはコンカレンシーが低いため、必要なときにのみ使用してください。設定するのと同じ効果があります。設定でき、設定したオプションは明示的に変更されない限り、その接続で継続的に使用されます。ヒントで、テーブルに対して別のロック動作やバージョン管理動作が指定されない限り、トランザクションのすべての読み取り操作は、指定した分離レベルのルールに従って実行されます。table.トランザクションの分離レベルでは、読み取り操作に対して取得されるロックの種類が定義されます。用に取得される共有ロックは通常、行ロックです。ロックに変更される場合があります。トランザクションで行の読み取り後に変更が行われる場合、そのトランザクションでは排他ロックによって行が保護され、トランザクションが完了するまでその状態が保持されます。トランザクションで、行に対する共有ロックが取得され、その行がトランザクションによって変更される場合、共有行ロックは排他行ロックに変わります。つの例外を除き、分離レベルはトランザクションの実行中いつでも変更できます。分離レベルに変更した場合は例外が発生します。このときトランザクションは失敗し、ロールバックされます。分離で開始したトランザクションを他の任意の分離レベルに変更することはできます。level.トランザクションの分離レベルを変更した場合、変更後に読み取られるリソースは、新しいレベルのルールに従って保護されます。変更前に読み取られたリソースは、引き続き以前のレベルのルールに従って保護されます。変更された場合、変更後に取得される共有ロックは、トランザクションの終了まで保持されるようになります。プロシージャまたはトリガーで実行した場合は、オブジェクトから制御が返されると、分離レベルはオブジェクトの呼び出し時に使用されていたレベルに再設定されます。