sql >> Databáze >  >> RDS >> Sqlserver

Spouštěcí vložení starých hodnot – hodnot, které byly aktualizovány

Ve vašem spouštěči máte k dispozici dvě pseudotabulky, Inserted a Deleted , které tyto hodnoty obsahují.

V případě UPDATE Deleted tabulka bude obsahovat staré hodnoty, zatímco Inserted tabulka obsahuje nové hodnoty.

Pokud tedy chcete zaznamenat ID, OldValue, NewValue ve vašem triggeru byste museli napsat něco jako:

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

V podstatě se připojíte k Inserted a Deleted pseudo-tabulky, vezměte ID (které je, předpokládám, v obou případech stejné), starou hodnotu z Deleted tabulka, nová hodnota z Inserted a vše uložíte do LogTable



  1. Jak spustím automatické zvyšování od určitého bodu?

  2. PL/SQL:jak vyvolám uživatelský vstup do procedury?

  3. MySQL - vložení japonštiny z PHP - Problémy s kódováním

  4. Dotazy v dotazech:Existuje lepší způsob?