Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Wyzwalacz historii tabeli w SQL Server?

Jeśli każdy użytkownik ma konto, możesz użyć SYSTEM_USER funkcja do określenia aktualnego użytkownika. Jeśli jednak wszystkie twoje połączenia przechodzą przez konto proxy, co jest typowe w większości konfiguracji witryn internetowych, musisz polegać na prawidłowym identyfikatorze użytkownika przekazywanym do instrukcji Update:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jaki jest ciąg połączenia sql, którego muszę użyć, aby uzyskać dostęp do localhost\SQLEXPRESS z uwierzytelnianiem systemu Windows lub uwierzytelnianiem SQL?

  2. „Zapytanie niedozwolone w Waitfor” Błąd 101 w SQL Server

  3. Usuń nagłówek kolumny z wyniku zapytania SQL Server

  4. Wiele ograniczeń klucza obcego w jednej kolumnie w SQL Server 2008

  5. Nie można otworzyć testu bazy danych żądanego podczas logowania. Logowanie nie powiodło się. Logowanie nie powiodło się dla użytkownika „xyz\ASPNET”