sql >> Database teknologi >  >> RDS >> Sqlserver

Tabelhistorikudløser i SQL Server?

Hvis hver bruger har en konto, kan du bruge SYSTEM_USER funktion til at bestemme den aktuelle bruger. Men hvis alle dine forbindelser går gennem en proxy-konto, som det er typisk i de fleste webstedsopsætninger, så skal du stole på, at det korrekte bruger-id sendes til Update-sætningen:

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. PHP Hvordan returneres datetime(6) fra Mysql?

  2. JPA formørker to fremmednøgler @IdClass implementeringsfejl

  3. mysql_insert_id alternativ til postgresql

  4. Gem output fra en dynamisk forespørgsel, der bruger prepare-sætning, i en tabel