SQL文からROLLBACKへのコミットを監査するCOMMITへの挿入
私はマスターストアのprocを持っています。これはいくつかの '子'のストアドプロシージャを呼び出します。 マスターprocは、子procsをトランザクション内にカプセル化します。
マスターと子プロキシ全体で、監査テーブルには多くの挿入があります。
処理が正常に終了すると、一連のイベントが検出されます。プロセスが失敗してロールバックされた場合、監査テーブルで処理された最後の子プロセスのレコードを取得したいが、全体が監査データを含めてロールバックされる。子プロセスの変更をロールバックしながら、監査挿入を選択的にコミットする方法はありますか?
ありがとうございました
これを行うには非常に面倒ですが機能的な方法の1つは、監査ログを更新するすべてのSQL文をvarchar(max)@variableに順番に実行しながら保存することです。プロセスが失敗してロールバックすると、変数内のSQLとエラー追跡データ内の情報によってどこが失敗したかを確認し、ログを適切に更新できます。これにより、ロールバックされたログされた情報必要なデータそのクルージングと恐ろしい痛みですが、それはうまく実装されたときに正確です。 –