トランザクションのパラメータを設定します。
Synopsis
SET TRANSACTION %COMMITMODE commitmode-value

SET TRANSACTION transaction-mode
引数
%COMMITMODE commitmode-value オプション — トランザクションがデータベースにコミットされる方法を指定します。利用可能な値は、EXPLICIT、IMPLICIT、そして NONE です。既定は IMPLICIT です。
transaction-mode オプション — トランザクションのアクセス・モードと分離モードを指定します。分離モード、アクセス・モード、またはコンマ区切りリストとして両方のモードの値を指定できます。分離モードの有効な値は、ISOLATION LEVEL READ COMMITTED と ISOLATION LEVEL READ UNCOMMITTED です。既定は、ISOLATION LEVEL READ COMMITTED です。アクセス・モードに有効な値は READ ONLY と READ WRITE です。ISOLATION LEVEL READ UNCOMMITTED は、READ WRITE のアクセス・モードと互換性がなく、コンパイル時にエラーが発行されます。
概要
SET TRANSACTION 文は、トランザクションを管理するパラメータを設定します。これらのパラメータは、次のトランザクションの開始時に発効し、現在のプロセスの間、またはリセットされるまでの間、有効となります。START TRANSACTION コマンドを使用して、同じパラメータを設定できます。このコマンドでも、新しいトランザクションが開始されます。既定では、トランザクションは最初のデータベース操作で開始され、COMMIT または ROLLBACK で完了するまで継続します。次のデータベース操作で、次のトランザクションが開始されます。
%COMMITMODE
%COMMITMODE キーワードを使用すると、トランザクションのコミットを自動的に実行するかどうかを指定できます。使用可能なオプションは以下のとおりです。
以下の関数呼び出しを使用することで、Caché ObjectScript で同じオプションを設定できます。
  DO $SYSTEM.SQL.SetAutoCommit(0)
使用可能な関数の値は、0 (NONE)、1 (IMPLICIT)、および 2 (EXPLICIT) です。
ISOLATION MODE
ISOLATION MODE を使用すると、コミットされていないデータベースへの変更分に対して、SELECT クエリで読み取りアクセスできるようにするかどうかを指定できます。READ COMMITTED オプションは、コミットされた変更分のみがクエリ・アクセスで使用できることを示します。要求されたデータは変更されているが、コミット (またはロールバック) されていない場合、クエリはトランザクションが完了するまで待機します。このデータが使用可能になるまで待機している間にロック・タイムアウトが発生した場合、SQLCODE エラーが発行されます。READ COMMITTED が既定です。READ UNCOMMITTED オプションは、すべての変更分がクエリ・アクセスで即座に使用できることを示します。ISOLATION MODE は、SET TRANSACTION または START TRANSACTION コマンドを使用して明示的にリセットされるまで有効です。COMMIT または ROLLBACK 処理は、ISOLATION MODE の設定には影響しません。
SELECT DISTINCT または GROUP BY 節を使用したクエリ処理や集約関数の呼び出しは、ISOLATION MODE オプションに影響されません。集約関数は、コミットされていない変更分を含め、現在の変更の状態をすべて返します。COUNT(*) のような集約関数は大量のレコードに関連し、絶えず変更されている値を返すため、任意の時点の集約値はその時点のトランザクションで発生している正確な変更の状態を反映することができません。
関連項目
COMMIT ROLLBACK SAVEPOINT START TRANSACTION トランザクション