You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server 2019如何创建来自不同表的多个外键约束

完全支持。所有主流关系型数据库(包括你当前用的SQL Server,从IDENTITY自增语法可判断)都允许单张表创建多个来自不同表的外键约束,这也是实现多表关联的基础设计,你这个场景属于典型的多对多关系映射,第三张表是教授和学生的关联中间表。

第三张表的创建语句参考如下:

create table TblProfStudent(
    relId int IDENTITY(1,1) PRIMARY KEY,
    -- 外键对应字段的类型必须和关联主表的主键类型完全一致
    profId int NOT NULL,
    studentId int NOT NULL,
    -- 绑定关联教授表的外键
    constraint FK_ProfStudent_Prof foreign key (profId) references TblProf(profId),
    -- 绑定关联学生表的外键
    constraint FK_ProfStudent_Student foreign key (studentId) references TblStudent(studentId)
);

注意事项

  • 外键字段的数据类型、精度必须和对应主表的主键字段完全匹配,比如你两张主表的主键都是int类型,外键字段就不能用varchar、bigint等其他类型,否则约束会创建失败
  • 你可以根据实际业务需求给外键加级联规则,比如ON DELETE CASCADE表示主表删除对应记录时,自动删除中间表的关联记录;不配置的话默认规则是:主表记录如果被中间表外键关联,就不允许直接删除
  • 如果业务上要求同一个教授和同一个学生只能有一条关联记录,可以额外给profId和studentId加联合唯一约束,避免重复脏数据

内容的提问来源于stack exchange,提问作者coderGirl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 07:03:27