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

Antwort per Email an