该模型已经有一个具有相同名称的元素 - ASP.NET

时间:2015-08-18 20:37:39

标签: sql asp.net database error-handling

我正在使用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]),
);

4 个答案:

答案 0 :(得分:2)

在dbo.Sellers的CREATE TABLE语句中,您有两个名为FK_Sellers_Users的FK约束。

通过在末尾添加列名称,使这些名称唯一。

答案 1 :(得分:0)

您有两个具有相同名称FK_Sellers_Users的外键。您最好使用FK_Sellers_Users_EmailFK_Sellers_Users_Username

答案 2 :(得分:0)

实际上,这与已经输入的数据有关。之前输入的某些PK和FK数据可能具有相同的值。您需要先删除这些内容,然后进行所需的更改。

答案 3 :(得分:0)

如果您的项目使用SSDT(SQL Server数据工具),则可能在密钥的文件夹中定义了一个外键。在“数据库名称\架构对象\架构\ dbo \表\键”中查找。

然后在表定义中查找。 “数据库名称\架构对象\架构\ dbo \表”。密钥可以在两个地方定义。