Trigger nehmen?

magic_halli

Erfahrenes Mitglied
Hi,

ich habe folgendes Problem:
Ich schreibe in eine Tabelle diverse Werte inkl. ein Feld 'neu'. Beim inserten bekommt neu immer den Wert 1 zugewiesen.
Jetzt kann ich per Buttonklick auf einer Seite festlegen, ob ein neuer Abschnitt (ist in der Aufgabenstellung so bezeichnet) und somit auch neue Dateneintragungen für diesen Abschnitt beginnen sollen.
Wenn das der Fall ist, dann sollen die "alten" Werte, die immernoch mit neu=1 gekennzeichnet sind, nicht gelöscht, sondern neu auf 0 gesetzt werden.
Wenn jetzt angenommen wieder ein neuer Abschnitt beginnt, dann stehen in der DB Werte, bei denen neu=0 und neu=1 ist. In diesem Fall sollen dann alle Werte mit neu=0 endgültig gelöscht werden und die Werte mit neu=1 auf neu=0 gesetzt werden.

Ich hatte mir gedacht, einen Trigger "FOR DELETE" dafür zu erstellen, doch bin ich mit nicht ganz sicher, ob dieser den Sachverhalt lösen kann?!

Bitte gebt mir doch ein paar Tips dies bezüglich!

Danke, Rico.
 
Ich habe mal was probiert, aber irgendwie funktioniert der Trigger nicht richtig - es wird einfach alles gelöscht, was in dbo.triggertest vorhanden ist...
Es stehen zur Zeit nur Datensätze mit neu=1 drin.
Hier mal mein Code:
Code:
Create Trigger neu_alt_aendern
ON triggertest
FOR DELETE AS
IF (Select COUNT(*) from triggertest Where neu=1) > 0
  BEGIN
   	Update triggertest Set neu=0 Where neu=1
  END
ELSE IF (Select COUNT(*) from triggertest Where neu=0) > 0
  BEGIN
	Delete from triggertest where neu=0
END
go

Was habe ich hier falsch gemacht?
 
Zurück