ROLLBACKリクエストには、構文解析プログラムによる評価が可能でテーブルへのアクセスを必要としないものと、テーブルへのアクセスを必要とするものという、2つの種類があります。
テーブルを参照しないROLLBACK式を処理し、その実行順序が複文リクエストまたはマクロ内のその他のリクエストと比べて重要でない場合、その式は、テーブルを参照するリクエストよりも前に置くべきです。そうすることにより、早くロールバック操作を実行できます。
次の例では、最初の2つのROLLBACKリクエストは構文解析プログラムによって評価することができ、テーブルへのアクセスを必要としません。3番目のROLLBACKリクエストは、テーブルへのアクセスが必要です。
CREATE MACRO macro_name ( p1 INTEGER, p2 INTEGER) AS. . . ROLLBACK 'error' WHERE :p1 < 0; ROLLBACK 'error' WHERE :p2 < 0; SELECT. . . ROLLBACK 'error' WHERE tab.c1 = :p1;