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

时间:2017-04-08 20:27:07

标签: sql-server composite-primary-key

DB Model

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

  

关系的两边必须具有相同的列数

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

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

1 个答案:

答案 0 :(得分:0)

只需删除表product_translation ..请确保您先没有任何数据。然后按如下方式添加代码。

CREATE TABLE [product_translation] (   PRIMARY KEY CLUSTERED(product_non_transid,language_id),   FOREIGN KEY(product_non_transid)参考[产品](Id)ON更新删除CASCADE上的操作,   FOREIGN KEY(language_id)REFERENCES [语言](Id)ON更新删除CASCADE上的操作, product_name Varchar2(100), 描述Varchar2(500) )