Hallo!
Ich habe mal wieder eine Frage und zwar soll bei einem Insert überprüft werden, ob das vonDatum zwischen vonDatum und bisDatum schon vorhanden ist und die verz_ID auch schon vorhanden ist. Das soll die letzte Zeile überprüfen. Ist sie schon vorhanden darf die Zeile nicht eingefügt werden und es sollte eine Fehlermeldung ausgegeben werden.
Der erste Teil setzt eigentlich nur das bisDatum auf 31.12.2099.
Leider kann man trotz der letzten Zeile immer noch mehrere Zeilen mit der gleichen verz_ID und wo das vonDatum zwischen dem vDatum und dem bDatum liegt einfügen.
Danke im Vorraus
Ich habe mal wieder eine Frage und zwar soll bei einem Insert überprüft werden, ob das vonDatum zwischen vonDatum und bisDatum schon vorhanden ist und die verz_ID auch schon vorhanden ist. Das soll die letzte Zeile überprüfen. Ist sie schon vorhanden darf die Zeile nicht eingefügt werden und es sollte eine Fehlermeldung ausgegeben werden.
Der erste Teil setzt eigentlich nur das bisDatum auf 31.12.2099.
Leider kann man trotz der letzten Zeile immer noch mehrere Zeilen mit der gleichen verz_ID und wo das vonDatum zwischen dem vDatum und dem bDatum liegt einfügen.
Code:
ALTER TRIGGER [dbo].[ProdZuOrdnung] ON [dbo].[ProdZuOrdnung] AFTER INSERT AS update p set bDate = isnull( ( select top 1 dateadd(day, -1, p2.vDate) from dbo.ProdZuOrdnung p2 where p2.Verz_ID = p.Verz_ID and p2.vDate > p.vDate order by p2.vDate asc ), convert( datetime, '2099-12-31', 120 ) ) from inserted i inner join dbo.ProdZuOrdnung p on p.ProdZuOrdnung_ID = i.ProdZuOrdnung_ID where i.vDate not between p.vDate AND p.bDate AND i.Verz_ID = p.zugverz_ID
Comment