Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Тригер за история на таблици в SQL Server?

Ако всеки потребител има акаунт, можете да използвате SYSTEM_USER функция за определяне на текущия потребител. Въпреки това, ако всичките ви връзки минават през прокси акаунт, както е типично в повечето настройки на уеб сайтове, тогава трябва да разчитате на правилния потребителски идентификатор, който се предава на израза за актуализиране:

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. Как този CASE израз достига до клаузата ELSE?

  2. Анализиране на I/O производителността за SQL Server

  3. LIMIT 10..20 в SQL Server

  4. Вземете състояние на работа на SQL Server

  5. Как мога да направя HTTP заявка от SQL сървър?