sql >> Databasteknik >  >> RDS >> Sqlserver

Utlösa infoga gamla värden - värden som uppdaterades

I din trigger har du två tillgängliga pseudotabeller, Inserted och Deleted , som innehåller dessa värden.

I fallet med en UPPDATERING, Deleted tabellen kommer att innehålla de gamla värdena, medan Inserted tabellen innehåller de nya värdena.

Så om du vill logga ID, OldValue, NewValue i din trigger, skulle du behöva skriva något i stil med:

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

I grund och botten går du med i Inserted och Deleted pseudo-tabeller, ta tag i ID:t (som är detsamma, antar jag, i båda fallen), det gamla värdet från Deleted tabellen, det nya värdet från Inserted tabell, och du lagrar allt i LogTable



  1. Tar bort oönskat tecken från kolumnen

  2. skicka javascript-variabel till php mysql-valfråga

  3. En introduktion till Hadoop och Big Data

  4. Rangordning baserat på sekvens av datum