将PK从不同表中匹配到SQL Server中的复合PK FK

问题描述:

DB Model将PK从不同表中匹配到SQL Server中的复合PK FK

图像反映了预期结果。我试图使用Microsoft SQL Server 2016 Management Studio定义product_translation表复合主键与表产品语言中的PK之间的关系。当我尝试定义product_translation复合的PK和产品之间的PK,也就是说,一个关系我得到一个错误:

Both sides of a relationships must have same number of columns

这是有道理的,但向导不允许我选择匹配复合PK 所需的两个的PK从两个不同的表,这是目前的情况。

由于所有三个表已经设置好了,有没有ALTER语句允许我设置所需的关系?

只要删除表product_translation ..请确保您没有任何数据在那里。然后添加代码如下。

CREATE TABLE [product_translation] ( PRIMARY KEY CLUSTERED(product_non_transid,LANGUAGE_ID) 外键(product_non_transid)参考文献[产品](Id)的ON UPDATE NO ACTION ON DELETE CASCADE, 外键(LANGUAGE_ID)参考文献[语言](Id)在删除级联更新没有行动, product_name Varchar2(100), description Varchar2(500) )

+0

谢谢杰克,按预期工作。我只是稍微修改了查询,因为两个PK在被分配之前必须被创建。 CREATE TABLE [product_translation](product_non_transid int,language_id int,PRIMARY KEY CLUSTERED ... – Luke

+0

@Luke我很高兴能帮上忙,干杯好友! –