Foreign Key

Hoppel

Aktiver Benutzer
Beiträge
38
Hi,

ich habe eine ganz unangenehme Frage. Ich habe eine Datenbank entworfen und möchte nun N:M Kardinalitäten abbilden. Ich weiß, dass dem entsprechend in der Relation beide Primärschlüssel als Fremdschlüssel definiert werden müssen.

Code:
CREATE TABLE liegt( LagerNr varchar(500) not null, ArtNr varchar(500) not null,
CONSTRAINT liegt_fk FOREIGN KEY (LagerNr) REFERENCES Lager(LagerNr))

Soweit funktioniert es, aber dann hätte ich ja nur eine 1:N-Beziehung.

Wie erweitere ich den Befehl, dass das abgebildet wird, was ich mir wünsche.

Vielen lieben Dank!
 
Werbung:
Mit
Code:
ALTER TABLE liegt ADD CONSTRAINT liegt_Lager_fk FOREIGN KEY (LagerNr) REFERENCES Lager(LagerNr);
ALTER TABLE liegt ADD CONSTRAINT liegt_Artikel_fk FOREIGN KEY (ArtNr) REFERENCES Artikel(ArtNr);
würdest du zwei Fremdschlüssel für die Tabelle definieren. Abgesehen davon das die unterschiedlich heißen müssen gibt es nicht viel zu beachten. Man kann sie auch gleich im CREATE Statement mit erstellen, ich lege sie aber aus gewohnheit immer nachträglich an.
 
Vielen Dank für den Hinweis.

Jetzt stehe ich vor einem neuen Problem und finde den Fehler nicht. Ich möchte die Daten in die Datenbank importieren und benutze dafür das von Microsoft bereitgestellte Programm "SQL Server Import/Export-Assistent". Beim Import erhalte ich folgende Fehlermeldung, mit der ich nichts anfangen kann:

Fehler 0xc0202009: 1-Datenflusstask: SSIS-Fehlercode 'DTS_E_OLEDBERROR'. OLE DB-Fehler. Fehlercode: 0x80004005.
Ein OLE DB-Datensatz ist verfügbar. Quelle: 'Microsoft SQL Server Native Client 11.0' HRESULT: 0x80004005 Beschreibung: 'Die Anweisung wurde beendet.'.
Ein OLE DB-Datensatz ist verfügbar. Quelle: 'Microsoft SQL Server Native Client 11.0' HRESULT: 0x80004005 Beschreibung: 'Die INSERT-Anweisung steht in Konflikt mit der FOREIGN KEY-Einschränkung 'enthaelt_Artikel_fk'. Der Konflikt trat in der Droh-Datenbank, Tabelle 'dbo.Artikel', column 'ArtNr' auf.'.
(SQL Server-Import/Export-Assistent)

In der Datenbank existiert eine Tabelle "enthaelt" mit den Spalten "ArtNr" und "BelegNr" mit zwei Schlüsseln "enthaelt_Artikel_fk" und "enthaelt_Belege_fk".

Habt ihr eine Idee wo der Fehler liegt?

Vielen Dank!
 
Werbung:
Hier wird ein Konflikt mit dem Foreign Key enthaelt_Artikel_fk angezeigt. Du versuchst vermutlich einen oder mehrere Datensätze in deine Tabelle zu schreiben deren FK auf einen Eintrag zeigt, der noch nicht existiert. Der Eintrag, auf den der FK zeigt, muss bereits existieren.
 
Zurück
Oben