質問: SQL Serverにて、UPDATEと同時、あるいはUPDATE後にログファイル(?)を出力する方法を探しています。 それも以下に挙げる制限を課した状態で、です。 個人的には不可能ではないかと思うのですが――可能・不可能含めて、ご回答のほど、よろしくお願い申し上げます。 前提として――全く同じ内容であるテーブルA・テーブルBがあります。 初めに、テーブルAに対してINSERTするなり、UPDATEするなりして内容を少し弄ります。 次に、テーブルAの内容をそのままテーブルBに上書きする形でUPDATEします。 これでテーブルAとテーブルBの内容は全く同じになる訳ですが、このときテーブルAとテーブルBを比較して差異のあったレコードを抽出して、.csvファイルに出力します。 ただし、以下の制限を課します。 1) csvファイルに出力するのはUPDATEと同時か、UPDATE後で無ければなりません。 2) テーブルA・テーブルB以外のテーブル・ファイル等は一切使用不可です。差異のあるレコードを抽出して、別テーブル等に保存しておき、テーブルA・テーブルBのUPDATE後にファイル出力に利用するといったことはできません。 3) 使用できる機能(?)はT-SQL・Sqlcmdユーティリティ・bcpユーティリティ・コマンドプロンプト(.batファイル)・Visual Basicの5つだけです。オンライン上の機能を利用したり、PowerShellなどの上記以外の機能(言語?)は利用できません。 この3つの制限さえ無ければ簡単にできる処理だとは思うのですが、この制限を課した状態で、この処理は実行できるものなのでしょうか。 長くなりましたが、ご回答のほど、よろしくお願い申し上げます。
回答: 履歴テーブルを用意して、トリガーで ログ情報を書き込む。