2013-12-17 185 views
1

我有2個表有在參照表中沒有主或候選鍵 '標籤'

表#1:

CREATE TABLE Tabs 
(
    TabId int, 
    UserId int, 
    TabName varchar(20), 
    SettingName varchar(5000), 

    PRIMARY KEY (TabId, userId), 
    FOREIGN KEY (UserId) REFERENCES UserProfile(UserId), 
) 

表#2:

CREATE TABLE TabsSettings 
(
    TabId int, 
    UserId int, 
    TabName varchar(20), 
    SettingName varchar(5000), 
    SettingValue varchar(5000), 
    ModifiedOn datetime, 
    CreatedOn datetime, 

    PRIMARY KEY (TabId, userId), 
    FOREIGN KEY (UserId) REFERENCES Tabs(UserId), 
    FOREIGN KEY (TabId) REFERENCES Tabs(TabIdId) 
) 

當我試圖執行我的第二個查詢它顯示此錯誤

Ms 1776,Level 16,St ate 0,Line 1
引用表中的「選項卡」中沒有與外鍵'FK_ TabsSetti _UserI__7EF6D905'中的引用列表匹配的主鍵或候選鍵。
消息1750,級別16,狀態0,行1
無法創建約束。查看以前的錯誤。

+0

您正在使用由用戶配置一列,創建標籤表之前必須存在的第一個table命令,所以對於第一個表的創建,你需要一個已經創建的UserProfile UserId列 同樣在第二個創建命令中,你指示TabIdId 這個列沒有在Tabs表 –

回答

4

您必須引用列有外鍵:

FOREIGN KEY (TabId,UserId) REFERENCES Tabs(TabId,UserId) 
+0

ya檢查並得到它。不管怎麼說,多謝拉 – Vivekh

相關問題