2017-04-08 70 views
0

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語句允許我設置所需的關係?

回答

0

只要刪除表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我很高興能幫上忙,乾杯好友! –