1

複数のテーブルがあり、現時点では、ほぼクローンで1対1のテーブルを監査しています。すべてのテーブルの監査目的で単一のテーブルを作成したいと考えていますが、すべての変更をキャプチャするのではなく、列名の変更、古いデータと新しいデータのみを監査に挿入します。

これが私のコンセプトトリガーです。

CREATE TRIGGER `tr_users_audit`
BEFORE UPDATE ON `tbl_users` FOR EACH ROW
BEGIN
    DECLARE @var1 nvarchar(max), @var1 nvarchar(max), @var1 nvarchar(max) 

    [... get values for var's ...]

    INSERT INTO `tbl_audit` (id_user, event_date, table_name, record_id, column_name, old_value, new_value)
    VALUES (NEW.update_userid, NEW.dtupdated, 'tbl_users', NEW.id, [@va1], [@var2], [@var3],)
END

私は数時間ウェブを検索しましたが、多くの監査例のトリガーは見つかりませんでした。私が見つけたものはこのようなことをしません。3つの変数を挿入できるようにするには、かなりのSQLが必要だと思いますが、適切な関数があるかどうかはわかりません。

使用する関数についてのアドバイスは素晴らしいでしょう。

4

0 に答える 0