sql >> データベース >  >> RDS >> Sqlserver

SQL Serverのテーブル履歴トリガー?

    各ユーザーがアカウントを持っている場合は、SYSTEM_USERを使用できます 現在のユーザーを判別する関数。ただし、ほとんどのWebサイトの設定で一般的であるように、すべての接続がプロキシアカウントを経由する場合は、Updateステートメントに渡される適切なuserIdに依存する必要があります。

    CREATE TRIGGER [update_history] ON MyTable
    FOR UPDATE
    AS
    INSERT MyTable_History (id, BudgetNumber, PositionNumber, ModifiedDate, action, userId)
    SELECT id, BudgetNumber, PositionNumber, GETDATE(), 'BEFORE UPDATE', inserted.userId
    FROM MyTable
        Join inserted
            On inserted.id = MyTable.id
    
    INSERT MyTable_History (id, BudgetNumber, PositionNumber, ModifiedDate, action, userId)
    SELECT id, BudgetNumber, PositionNumber, GETDATE(), 'AFTER UPDATE', userId
    FROM inserted
    


    1. MySQL – MariaDB –最初のストアドプロシージャの作成

    2. geodjangoPointFieldの保存中にエラーが発生しました

    3. 値「0000-00-00」はjava.sql.Dateとして表すことができません

    4. MySQLでデッドロックを引き起こす方法