to tabeller currentdata og historydata begge med to felter f1 og f2 både f1 og f2 er integer
CREATE PROCEDURE updwithhist @f1 INTEGER, @f2 INTEGER As DECLARE @oldf2 INTEGER SET @oldf2 = (SELECT f2 FROM currentdata WHERE f1=@f1) IF @oldf2 IS NULL BEGIN INSERT INTO currentdata VALUES(@f1,@f2) END ELSE BEGIN INSERT INTO historydata VALUES(@f1,@oldf2) UPDATE currentdata SET f2 = @f2 WHERE f1=@f1 END GO
Hvis der laves en trigger på currentdata er der adgang til både de nye og de gamle værdier på een gang i triggeren. Brug IF UPDATE(felt) eller sammenlign felterne mellem tabellen og INSERT rækken. Check at der kun arbejdes med een række ad gangen.
Gider du ikke lige skrive et svar som jeg kan acceptere ?
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.