2014-02-13 65 views
1

我有一個表項目主,其中我有一個主鍵項代碼外鍵約束上的兩列referncing一個同桌

tbl_item_master

Itm_code詮釋PK

比爾材料的(tbl_Bom)

child_id INT PARENT_ID INT

我有材料的紙幣的另一表(tbl_b om),其中有2列父母和孩子的值是沒有什麼,但是項目主人的主鍵。 I.e BOM中的父代和子代編號來自物料主數據的主鍵。 Follwoing是我用來將外鍵應用於孩子和父母的腳本。

CREATE TABLE dbo.BOM_MASTER 
(
    BOM_SrNo      INT CONSTRAINT DF_BOM_MASTER_BOM_SrNo DEFAULT ((0)) NOT NULL, 
    BOM_Key      INT NOT NULL, 
    PD_Key      INT, 
    BOM_Level     INT, 
    BOM_Parent_Code    VARCHAR (50), 
    BOM_Child_Code    VARCHAR (50), 
    BOM_UOM      INT, 
    BOM_Qty      DECIMAL (14, 2), 
    BOM_Final_Version   INT, 
    BOM_ItemDimension_Applicable BIT, 
    BOM_MatType     INT CONSTRAINT DF__BOM_MASTE__BOM_M__192BAC54 DEFAULT ((0)) NOT NULL, 
    CONSTRAINT FK_BOM_MASTER_Project_Details_Master FOREIGN KEY (PD_Key) REFERENCES dbo.Project_Details_Master (PD_Key), 
    CONSTRAINT FK_BOM_MASTER_tbl_itm_master FOREIGN KEY (BOM_Parent_Code) REFERENCES tbl_itm_master (BSL_COST_ITEM_Item_SAP_Code), 
    CONSTRAINT FK_BOM_MASTER_tbl_itm_master FOREIGN KEY (BOM_Child_Code) REFERENCES tbl_itm_master (BSL_COST_ITEM_Item_SAP_Code) 
) 
GO 

,我收到以下錯誤

無法創建名爲「FK_BOM_MASTER_tbl_itm_master」兩個約束。不允許重複約束名稱。嚴重性16

回答

1

如果添加換行符,問題就會變得明顯。

CREATE TABLE dbo.BOM_MASTER 
(
    BOM_SrNo INT CONSTRAINT DF_BOM_MASTER_BOM_SrNo DEFAULT ((0)) NOT NULL, 
    BOM_Key INT NOT NULL, 
    PD_Key INT, 
    BOM_Level INT, 
    BOM_Parent_Code VARCHAR (50), 
    BOM_Child_Code VARCHAR (50), 
    BOM_UOM INT, 
    BOM_Qty DECIMAL (14, 2), 
    BOM_Final_Version INT, 
    BOM_ItemDimension_Applicable BIT, 
    BOM_MatType INT CONSTRAINT DF__BOM_MASTE__BOM_M__192BAC54 DEFAULT ((0)) NOT NULL, 
    CONSTRAINT FK_BOM_MASTER_Project_Details_Master FOREIGN KEY (PD_Key) REFERENCES dbo.Project_Details_Master (PD_Key), 
    CONSTRAINT FK_BOM_MASTER_tbl_itm_master FOREIGN KEY (BOM_Parent_Code) REFERENCES tbl_itm_master (BSL_COST_ITEM_Item_SAP_Code), 
    CONSTRAINT FK_BOM_MASTER_tbl_itm_master FOREIGN KEY (BOM_Child_Code) REFERENCES tbl_itm_master (BSL_COST_ITEM_Item_SAP_Code) 
) 
GO 

最後2個名稱完全相同。同樣清楚的是還有其他命名問題。什麼是DF__BOM_MASTE__BOM_M__192BAC54?未來的桌面用戶能夠從這個命名中看到什麼?

+0

我試過,但我得到以下錯誤。 被引用表'tbl_itm_master'中沒有與外鍵「FK_BOM_MASTER_tbl_itm_master」中的引用列表匹配的主鍵或候選鍵。嚴重性16 無法創建約束。查看以前的錯誤。嚴重性16 – user3004443