Sybase ASEでは、プライマリ・テーブルにいくつかの監査テーブルとトリガがあります。監査は非常に簡単で、各テーブルの挿入/更新/削除のトリガーがあり、操作が挿入、更新、削除のいずれであったか、ユーザーと時刻のいずれであるかを/フラグで示す追加の列とともに単純な行を挿入します。挿入と更新のSybaseトリガ - 処理の失敗
監査は重要ではないため、何らかの理由で監査トリガーが失敗した場合は、トリガーを起動した操作全体を強制終了しないようにします。
Say TableAには、TableBに挿入されるTriggerAがあります。
StatementXを実行するTableAでStatementXを実行します.StatsmentsYからなるTriggerAは、TableBに挿入するSatementsYに失敗します。通常のパターンでは、StatementXとStatementYの両方をロールバックして整合性を確保しています。
StatementYが失敗した場合、StatementXにブレークがなく、StatementXがまだコミットされている(StatementYのみがロールバックされる)ように、トリガー内にセーブポイントを作成する方法はありますか?