【发布时间】:2013-12-17 07:20:06
【问题描述】:
我有两张桌子
表#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)
)
当我尝试执行我的第二个查询时,它会显示此错误
消息 1776,第 16 级,状态 0,第 1 行
引用表“Tabs”中没有与外键“FK_TabsSetti_UserI__7EF6D905”中的引用列列表匹配的主键或候选键。
消息 1750,第 16 级,状态 0,第 1 行
无法创建约束。查看以前的错误。
【问题讨论】:
-
在第一个表命令中,您正在使用来自 UserProfile 的列,该列必须在创建 Tabs 表之前存在,因此对于第一个表创建,您需要一个已经创建的表 UserProfile 具有 UserId 列也在第二个创建命令中,您表示 TabIdId 此列不在 Tabs 表中