不会指定一个外键约束让我陷入麻烦?
我在VS2013中有以下T-SQL:
CREATE TABLE [dbo].[Jugo] 
(
    [JugoID]  INT           IDENTITY (1, 1) NOT NULL,
    [Jugo]    NVARCHAR (50) NOT NULL,
    [ColorID] INT           NOT NULL,
    [IngreID] INT           NOT NULL,
    PRIMARY KEY CLUSTERED ([JugoID] ASC),
    FOREIGN KEY (ColorID) REFERENCES Color (ColorID) 
        ON UPDATE CASCADE ON DELETE CASCADE,
    FOREIGN KEY (IngreID) REFERENCES Ingrediente (IngreID) 
        ON UPDATE CASCADE ON DELETE CASCADE 
);
在更新数据库之前,我收到以下消息:
亮点没有
用户操作创建外键:[dbo]上的未命名约束[Jugo](外键)外键:[dbo]上的未命名约束[Jugo](外键)
支持行动无
我可以继续使用这些未命名的约束吗? 我需要什么约束?
作为参考,这是我想要做的:
3桌:
  Jugo , Color , Ingrediente :所以要创建一个jugo(果汁),您需要指定名称,颜色和配料,颜色和配料在自己的桌子上,因此我要定义外键。 
谢谢。
  只要ColorID和IngreID在他们自己的表格中都是主键,您就不会遇到任何问题。 
但这里有一个问题,你没有限制你的主键。 对于您正在使用的每个PRIMARY KEY,使用约束是一种很好的做法,这样,当您将外键指定给另一个表时。 它可以读取它来自另一个表。 我不知道VS2013中的SQL但是这里是我的SQL Server示例:
CREATE TABLE JUGO 
(
     JUGOID numeric identity (1,1) //For auto increment
        CONSTRAINT PK_JUGOID PRIMARY KEY (JUGOID),
     JUGO nvarchar(50) not null,
     .
     .
     .
)
  该PK_JUGOID在CONSTRAINT PK_JUGOID PRIMARY KEY (JUGOID),是用户定义的,但它是一个很好的做法,刚才复制的主键的格式,因此使用外键时,你会不会感到困惑。  :) 
外键用于数据一致性。 您在列上创建外键,以避免无效条目。
FOREIGN KEY (ColorID) REFERENCES Color (ColorID) 
    ON UPDATE CASCADE ON DELETE CASCADE,
这个约束确保你的jugo只能有一个颜色表存在的颜色。 此外,你有两个级联命令:
最后你应该给你的约束名称,所以你更容易处理它们。
CONSTRAINT pk_jugo PRIMARY KEY CLUSTERED ([JugoID] ASC),
CONSTRAINT fk_jugo_color FOREIGN KEY (ColorID) REFERENCES Color (ColorID),
CONSTRAINT fk_jugo_ingre FOREIGN KEY (IngreID) REFERENCES Ingrediente (IngreID)
上一篇: Will not specifying a foreign key constraint get me in trouble?
