引用的表'Tabs'中没有主键或候选键

时间:2013-12-17 07:20:07

标签: sql sql-server-2008-r2

我有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) 
)

当我尝试执行第二次查询时,显示此错误

  

Msg 1776,Level 16,State 0,Line 1
  引用的表'Tabs'中没有主键或候选键与外键'FK_ TabsSetti _UserI__7EF6D905'中的引用列列表匹配。
  Msg 1750,Level 16,State 0,Line 1
  无法创建约束。查看以前的错误。

1 个答案:

答案 0 :(得分:4)

您必须使用单个外键引用两个列:

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