bigpoint Geschrieben 27. Juli 2005 Teilen Geschrieben 27. Juli 2005 Hallo, ich möchte mit Hilfe von einem Trigger in eine Tabelle Daten speichern wenn in eine Spalte von der Tabelle wo der Trigger eingelegt worden ist man wert null schreibt, und aber Früher einen wert da wahr. So habe ich es versucht zu lösen, CREATE TRIGGER [UPDATE_TEST] ON [dbo].[TEST] FOR UPDATE AS insert into DeleteProtokol(lalala) select lalala from inserted where datumspalte is null [/PHP] leider funktioniert es nur bedingt dh. es werden werte auch gespeichert wenn das wert vorher auch null wahr. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
beetFreeQ Geschrieben 27. Juli 2005 Teilen Geschrieben 27. Juli 2005 Da müsstest du die deleted-Tabelle über deinen Primary Key dazujoinen und in der Tabelle halt abfragen, ob der Wert vorher not null war... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
bigpoint Geschrieben 27. Juli 2005 Autor Teilen Geschrieben 27. Juli 2005 Da müsstest du die deleted-Tabelle über deinen Primary Key dazujoinen und in der Tabelle halt abfragen, ob der Wert vorher not null war... warum deleted-Tabelle und was mache wenn jemand erstmal den Datensatz mit null werten neu einfügt ?? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
beetFreeQ Geschrieben 27. Juli 2005 Teilen Geschrieben 27. Juli 2005 Naja, in der deleted-Tabelle stehen ja die Daten vor dem Update (der SQL-Server macht bei einem UPDATE ja nichts anderes als ein DELETE und danach ein INSERT) - also bekommst du damit heraus, ob in der Spalte vorher ein NOT NULL stand. Wenn du das ganze dann noch mit LEFT JOIN zusammensetzt, kannste auch herausfinden, wenn der Datensatz neu erstellt wurde - also in etwa so: insert into DeleteProtokol (lalala) select lalala from inserted i left outer join deleted d on (d.id = i.id) where i.datumspalte is null and d.datumspalte is not null Vorausgesetzt, der Primary Key heißt ID - mit dem obigen Statement müsstest du dann alle Datensätze erwischen, die vorher schon in der DB waren, im Feld datumspalte einen Wert stehen hatten und jetzt dort NULL eingefügt werden soll. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.