Ich bin neu in SQL Server und kämpfen, um einen Fremdschlüssel in einer Tabelle mit einem Primärschlüssel in einer anderen Tabelle zu verknüpfen. Hier ist, was ich habe:kann keinen Fremdschlüssel mit einem Primärschlüssel verbinden
Dies ist meine erste Tabelle
Create table "Employees"
(EmpID Int identity(1,1) primary key,
EmpNo Int,
EmpFName Varchar(30),
EmpLName Varchar(30),
JobID int references JobDetails(JobID)
)
ich dann eine zweite Tabelle erstellt:
Create table "Projects"
(ProjectID Int identity(1,1) primary key,
ProjectName VarChar(30),
ProjStartDate smalldatetime,
)
und versuchte, die dritte Tabelle zu verknüpfen:
Create table "HrsWkd"
(HrsID Int identity(1,1) primary key,
ProjectID int references Projects(ProjectID),
HoursWorked int,
EmpID int references Employees(EmpID)
)
Übrigens, (EmpID) hat eine rote gestrichelte Linie darunter, dass es auf eine ungültige Spalte in "Mitarbeiter" verweist.
Wenn ich versuche, dann werden die Daten in dieser dritten Tabelle eingeben wie folgt aus:
insert into HrsWkd values
(1,1,50),
(1,2,75),
(2,3,85)
ich diese Meldung:
Msg 547, Ebene 16, Status 0, Zeile 12
Die INSERT-Anweisung steht im Konflikt mit der FOREIGN KEY-Einschränkung "FK__HrsWkd__EmpID__68487DD7". Der Konflikt trat in der Datenbank "New_AP", Tabelle "dbo.Employees", Spalte "EmpID" auf.
Die Anweisung wurde beendet.
Ich habe meine Haare mit diesem für die letzten 2 Stunden gezogen. Ich schätze, es ist etwas Einfaches, aber ich kann es einfach nicht sehen.
Danke!
twotoast
Vielen Dank für den Vorschlag. Ich habe es versucht und das Problem bleibt bestehen. Ich denke, dass ich das Problem falsch identifiziert habe. Es scheint, dass das eigentliche Problem mit der "HrsWkd" -Tabelle und der letzten Zeile, wo ich mit den Employees (EmpID) verlinke, ist. Die HrsWkd-Tabelle scheint die Verknüpfung zu EmpID nicht zu mögen und sagt, dass es sich um eine ungültige Spalte handelt. . . . . . – twotoast
Ich habe die blöde Antwort bemerkt, nachdem ich Ihre Tabellenkonfiguration repliziert habe. Aber ich muss es ein wenig anpassen, um mit MariaDB auf meinem lokalen Rechner zu laufen. Es hat funktioniert, aber wie ich schon sagte, ich benutze eine andere Datenbank-Engine. Etwas mit SQL Server verwandt und ich habe keine Maschine hier, um es zu testen – andre