Reputation: 5
I have an Azure SQL database created in the management station, I connect to it on Visual Studio 2015, I create tables Player and Team, I'm trying to create a foreign key to reference team name but I keep getting the following error;
SQL71516 :: The referenced table '[dbo].[Team]' contains no primary or candidate keys that match the referencing column list in the foreign key. If the referenced column is a computed column, it should be persisted.
From looking at online sources, mainly MSDN, I have tried a few ways to solve this issue but have had no luck. Here is my SQL code;
Team Table:
CREATE TABLE [dbo].[Team] (
[Id] INT NOT NULL,
[Name] VARCHAR (30) NOT NULL,
[Wins] INT NOT NULL,
[Draws] INT NOT NULL,
[Losses] INT NOT NULL,
[GoalsFor] INT NOT NULL,
[GoalsAgainst] INT NOT NULL,
[GoalDifference] INT NOT NULL,
[Points] INT NOT NULL,
PRIMARY KEY CLUSTERED ([Id] ASC)
);
Player Table:
CREATE TABLE [dbo].[Player] (
[Id] INT NOT NULL,
[Name] VARCHAR (30) NOT NULL,
[Team] VARCHAR (30) NOT NULL,
[Goals] INT NOT NULL,
[Assists] INT NOT NULL,
[Apps] INT NOT NULL,
[Club] VARCHAR (30) NOT NULL,
CONSTRAINT [FK_Player_Club] FOREIGN KEY ([Club]) REFERENCES [dbo].[Team]([Name]),
PRIMARY KEY CLUSTERED ([Id] ASC)
);
Upvotes: 0
Views: 572
Reputation: 44766
Team Table:
CREATE TABLE [dbo].[Team] (
[Id] INT NOT NULL,
[Name] VARCHAR (30) NOT NULL,
[Wins] INT NOT NULL,
[Draws] INT NOT NULL,
[Losses] INT NOT NULL,
[GoalsFor] INT NOT NULL,
[GoalsAgainst] INT NOT NULL,
[GoalDifference] INT NOT NULL,
[Points] INT NOT NULL,
PRIMARY KEY CLUSTERED ([Id] ASC)
);
Player Table:
CREATE TABLE [dbo].[Player] (
[Id] INT NOT NULL,
[Name] VARCHAR (30) NOT NULL,
[Team] VARCHAR (30) NOT NULL,
[Goals] INT NOT NULL,
[Assists] INT NOT NULL,
[Apps] INT NOT NULL,
[TeamId] INT NOT NULL,
CONSTRAINT [FK_Player_Club] FOREIGN KEY ([TeamId]) REFERENCES [dbo].[Team]([Id]),
PRIMARY KEY CLUSTERED ([Id] ASC)
);
Upvotes: 0