sql >> Databasteknik >  >> RDS >> Sqlserver

Tabellhistorikutlösare i SQL Server?

Om varje användare har ett konto kan du använda SYSTEM_USER funktion för att fastställa den aktuella användaren. Men om alla dina anslutningar går via ett proxykonto, vilket är typiskt i de flesta webbplatsinställningar, måste du lita på att rätt användar-ID skickas till Update-satsen:

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. java enum och postgresql enum

  2. Hur infogar man flera rader baserat på en fråga?

  3. Hur kan jag blanda OR och AND i ORM-frågor

  4. MySQL - Hur man infogar i flera tabeller med främmande nycklar