我有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
无法创建约束。查看以前的错误。
答案 0 :(得分:4)
您必须使用单个外键引用两个列:
FOREIGN KEY (TabId,UserId) REFERENCES Tabs(TabId,UserId)