SQL Server:尝试更改表以添加外键约束时出错

SQL Server:尝试更改表以添加外键约束时出错,sql,sql-server,Sql,Sql Server,所以我现在正在创建一个数据库,我已经成功地创建了我的表、列、主键,确保了数据类型的正确性 但是,现在,当我尝试执行数据库创建的下一步(即定义外键约束)时,我无法执行该操作,并且会出现如下错误: “外键“FK_TWEEDLEDEER_SHIPROSTER”的引用列列表中的列数与引用表“SHIP_ROSTER”中主键的列数不匹配。” 这是我所有的桌子。这个错误现在位于“TWEEDLEDEER”表和“SHIP_花名册”表之间,我试图在其中创建一个外键,该外键通过“Tweedle_No”列描述关系 我还

所以我现在正在创建一个数据库,我已经成功地创建了我的表、列、主键,确保了数据类型的正确性

但是,现在,当我尝试执行数据库创建的下一步(即定义外键约束)时,我无法执行该操作,并且会出现如下错误: “外键“FK_TWEEDLEDEER_SHIPROSTER”的引用列列表中的列数与引用表“SHIP_ROSTER”中主键的列数不匹配。”

这是我所有的桌子。这个错误现在位于“TWEEDLEDEER”表和“SHIP_花名册”表之间,我试图在其中创建一个外键,该外键通过“Tweedle_No”列描述关系

我还试图用这种方法修改表格

alter table TWEEDLEDEER 
add constraint FK_TWEEDLEDEER_SHIPROSTER
FOREIGN KEY(Tweedle_No) REFERENCES SHIP_ROSTER

SHIP_-lotster
有3列作为主键,在引用中使用它时,您只使用了一列,而外键中需要3列

因此,一般的想法是,在表
船舶花名册
中,
Tweedle\u No
列不是唯一的,您不能引用其中没有唯一值的任何列

如果您的数据结构允许,那么您可以在
SHIP_花名册
表的
Tweedle_No
列上使用唯一约束,那么您的外部约束将起作用

alter table TWEEDLEDEER 
add constraint FK_TWEEDLEDEER_SHIPROSTER
FOREIGN KEY(Tweedle_No) REFERENCES SHIP_ROSTER