sql >> Databáze >  >> RDS >> Sqlserver

Spouštěč historie tabulky na serveru SQL?

Pokud má každý uživatel účet, můžete použít SYSTEM_USER funkce k určení aktuálního uživatele. Pokud však všechna vaše připojení procházejí přes proxy účet, jak je obvyklé u většiny nastavení webových stránek, musíte se spolehnout na to, že do příkazu Update bude předáno správné 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. Chyba serveru SQL u příkazu aktualizace – u aktuálního příkazu došlo k závažné chybě

  2. Co přesně se stalo s operací indexování?

  3. Aktualizační dotaz nefunguje v mysql workbench

  4. MySQL při zadávání sloupců vyvolá chybu syntaxe