Hallo,
ich habe den folgenden Trigger geschrieben:
Der Trigger kopiert eine komplette Zeile mit einer neuen ID wenn PREIS oder BESCHREIBUNG aktualisiert wird. Gleichzeitig wird in der alten Zeile "AKTUELL" auf 'N' und in der neu erstellten Zeile " AKTUELL" auf 'Y' gesetzt. So weit so gut. Mein Problem ist jetzt, das ich nicht weiß wie ich in der neu erstellten Zeile z.B auch die Priorität aktualisieren kann ohne das eine neue Zeile erstellt wird (Soll nur bei aktualisierung von PREIS und BEZEICHNUNG geschehen, also so wie der aktuelle Trigger schon funktioniert). Wenn ich unter SET s.AKTUELL = 'N' die Zeile s.PRIORITAET = i.PRIORITAET hinzufüge, lässt sich die PRIORITAET aktualisieren. Dadurch wird aber auch AKTUELL auf 'N' gesetzt. Das darf aber nicht passieren.
Hoffenlich könnt ihr mir helfen.
Danke
lg Paks
ich habe den folgenden Trigger geschrieben:
Code:
ALTER TRIGGER [dbo].[DIENSTLEISTUNG_Update] ON [dbo].[DIENSTLEISTUNG] INSTEAD OF UPDATE AS BEGIN SET NOCOUNT ON; DECLARE @intNewID int INSERT INTO [DIENSTLEISTUNG] (BEZEICHNUNG, MENGENEINHEIT, PREIS, BESCHREIBUNG, VORLAUFZEIT, AZ_MO, AZ_DI,AZ_MI,AZ_DO,AZ_FR, AZ_SA,AZ_SO,DIENSTLEISTUNGSART_ID, UPDATE_USER, UPDATE_DATE, RUESTZEIT, PERMISSIONS, KONTRAKTPOSITION,ARTIKELNUMMER, ANZAHL, BUCHUNGSHINWEIS, SONDERWUNSCH,AKTUELL, PRIORITAET) SELECT i.BEZEICHNUNG, i.MENGENEINHEIT, i.PREIS, i.BESCHREIBUNG, i.VORLAUFZEIT, i.AZ_MO, i.AZ_DI,i.AZ_MI,i.AZ_DO,i.AZ_FR, i.AZ_SA,i.AZ_SO,i.DIENSTLEISTUNGSART_ID, i.UPDATE_USER,GETDATE(),i.RUESTZEIT, i.PERMISSIONS, i.KONTRAKTPOSITION,i.ARTIKELNUMMER, i.ANZAHL, i.BUCHUNGSHINWEIS, i.SONDERWUNSCH, 'Y', i.PRIORITAET FROM INSERTED i JOIN DELETED d ON i.ID = d.ID WHERE i.PREIS<>d.PREIS or i.BEZEICHNUNG<>d.BEZEICHNUNG UPDATE s SET s.AKTUELL = 'N' FROM DIENSTLEISTUNG s JOIN INSERTED i ON i.ID = s.ID SET NOCOUNT OFF; END
Hoffenlich könnt ihr mir helfen.
Danke
lg Paks
Comment