Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Löschen verwandter Zeilen in einer Viele-zu-Viele-Beziehung

Ihre Anfrage ergibt keinen Sinn

Fahrer als Entitäten existieren getrennt von Autos. Autos können von vielen Fahrern gefahren werden, Fahrer können viele Autos fahren. Aus diesem Grund haben Sie die Many-Many-Tabelle.

Beachten Sie das Bit "Fahrer können viele Autos fahren". Das bedeutet, wenn Sie die Zeile Drivers löschen, müssen Sie andere Zeilen in CarDrivers löschen.

Wenn Sie noch Dazu benötigen Sie einen Trigger auf CarDrivers. Die CASCADE von Drivers zu CarDrivers löscht andere CarDrivers-Zeilen für Sie. Ich kann mich auch nicht an das Standardverhalten für die Trigger-Rekursion erinnern.

Was für ein Durcheinander.

Hinweis:Dies ist fast macht Sinn, wenn Sie in einer der Spalten in der Many-Many-Tabelle Eindeutigkeit haben, dann sollte es ein Fremdschlüssel zwischen Cars und Drivers sein (Unique on Car bedeutet "höchstens ein Fahrer pro Auto" bedeutet NULLable FK-Spalte in Cars)