我正在使用ASP.Net Web应用程序,每当我尝试添加FOREIGN KEY
时,数据工具操作中都会出现此错误:
SQL71508 ::模型已经有一个具有相同名称的元素 dbo.FK_Sellers_Users。 SQL71508 ::该模型已经有一个元素 具有相同名称的dbo.FK_Sellers_Users。
我不明白FK的问题是什么!我有2个表有此错误
表Sellers
:
CREATE TABLE [dbo].[Sellers] (
[Seller_ID] INT IDENTITY (1, 1) NOT NULL,
[Name] NVARCHAR (50) NOT NULL,
[SUsername] NVARCHAR (50) NOT NULL,
[Password] NVARCHAR (50) NOT NULL,
[SEmail] NVARCHAR (50) NOT NULL,
[Phone] NVARCHAR (50) NOT NULL,
[City] NVARCHAR (50) NOT NULL,
[LastLoginDate] DATETIME NULL,
[CreatedDate] DATETIME NULL,
PRIMARY KEY CLUSTERED ([Seller_ID] ASC),
CONSTRAINT [FK_Sellers_Users] FOREIGN KEY ([SEmail]) REFERENCES [Users]([Email]),
CONSTRAINT [FK_Sellers_Users] FOREIGN KEY ([SUsername]) REFERENCES [Users]([Username])
);
和表格Users
:
CREATE TABLE [dbo].[Users] (
[Id] INT NOT NULL IDENTITY,
[Username] NVARCHAR (50) NOT NULL,
[Password] NVARCHAR (50) NOT NULL,
[Email] NVARCHAR (50) NOT NULL,
[UserType] INT NULL,
PRIMARY KEY CLUSTERED ([Id]),
CONSTRAINT [AK_Users_Username] UNIQUE ([Username]),
CONSTRAINT [AK_Users_Email] UNIQUE ([Email]),
);
答案 0 :(得分:2)
在dbo.Sellers的CREATE TABLE语句中,您有两个名为FK_Sellers_Users的FK约束。
通过在末尾添加列名称,使这些名称唯一。
答案 1 :(得分:0)
您有两个具有相同名称FK_Sellers_Users
的外键。您最好使用FK_Sellers_Users_Email
和FK_Sellers_Users_Username
。
答案 2 :(得分:0)
实际上,这与已经输入的数据有关。之前输入的某些PK和FK数据可能具有相同的值。您需要先删除这些内容,然后进行所需的更改。
答案 3 :(得分:0)
如果您的项目使用SSDT(SQL Server数据工具),则可能在密钥的文件夹中定义了一个外键。在“数据库名称\架构对象\架构\ dbo \表\键”中查找。
然后在表定义中查找。 “数据库名称\架构对象\架构\ dbo \表”。密钥可以在两个地方定义。