Hallo! > Ich arbeite auf einem MS SQL-Server 2000. Hier sind folgende > zwei Tabellen. > > PRODUKT(produkt_id(PK), name, kategorie_id(FK)) > KATEGORIE(kategorie_id,kategorie_bezeichnung) > > Meine Frage ist jetzt, kann ich sagen/machen, wenn eine > Kategorie gel�scht wird, welche in der Tabelle PRODUKT > vorhanden ist, soll die Spalte kategorie_id (PRODUKT) den > Wert NULL bekommen?
Schau Dir mal in der Online Dokumentation das Kapitel �ber Trigger an. Die Tabelle KATEGORIE erh�lt einfach einen AFTER-Trigger, den Du im Enterprise-Manager oder per SQL-DDL definierst: Create Trigger KATEGORIE_DELETE On KATEGORIE For Delete As Update PRODUKT Set KATEGORIE_ID = Null Where KATEGORIE_ID In (Select KATEGORIE_ID From Deleted) Das herausragende an Triggerprozeduren ist, dass sie bei allen �nderungen, egal ob im Enterprise-Manager oder im Query-Analyzer, oder beim Import oder bei Replikation oder durch beliebige Anwendungsprogramme, ausgef�hrt werden. Wenn Du jetzt einen Datensatz in KATEGORIE l�scht, wird die entsprechende Spalte in PRODUKT auf NULL gesetzt. In der Triggerprozedur kannst Du so beliebige Tabelle aktualisieren oder auch einfach verhindern, dass der Satz gel�scht wird, solange der Prim�rschl�ssel noch als Fremdschl�ssel in anderen Tabellen auftaucht. Freundliche Gr��e Joachim van de Bruck | [aspdedatabase] als [email protected] subscribed | http://www.aspgerman.com/archiv/aspdedatabase/ = Listenarchiv | Sie k�nnen sich unter folgender URL an- und abmelden: | http://www.aspgerman.com/aspgerman/listen/anmelden/aspdedatabase.asp
