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

Задействане на вмъкване на стари стойности - стойности, които са актуализирани

Във вашия тригер имате две налични псевдотаблици, Inserted и Deleted , които съдържат тези стойности.

В случай на АКТУАЛИЗАЦИЯ, Deleted таблицата ще съдържа старите стойности, докато Inserted таблицата съдържа новите стойности.

Така че, ако искате да регистрирате ID, OldValue, NewValue във вашия тригер ще трябва да напишете нещо като:

CREATE TRIGGER trgEmployeeUpdate
ON dbo.Employees AFTER UPDATE
AS 
   INSERT INTO dbo.LogTable(ID, OldValue, NewValue)
      SELECT i.ID, d.Name, i.Name
      FROM Inserted i
      INNER JOIN Deleted d ON i.ID = d.ID

По принцип вие се присъединявате към Inserted и Deleted псевдо-таблици, вземете идентификатора (който е един и същ, предполагам и в двата случая), старата стойност от Deleted таблица, новата стойност от Inserted таблица и съхранявате всичко в LogTable



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Колона, подобна на идентичност, но въз основа на критерии за групиране

  2. Необходим е динамичен Pivot с Row_Number()

  3. Промяна на потребителски дефиниран тип в SQL Server

  4. Концепции за проектиране на база данни със SQL Server Management Studio (SSMS) Част 1

  5. Как да автоматизирате процеса на синхронизиране на схемата на база данни на SQL Server