我有三个table
s: A , AB 和 B 。
A.ID 和 B.ID 是int
primary key
。 AB.AID 和 AB.BID 为int,(AID,BID)为 AB的primary key
我需要确保 AB.AID 为foreign key
,这将引用 A(ID)和 AB.BID 将是foreign key
,将引用 B(ID)。
如果我,使用Microsoft SQL Server Management Studio右键单击该表并单击“设计”,在表格出现后我右键单击并单击“关系”并添加foreign key
,我将得到与如果我愿意:
创建具有相同结构的临时table
从 AB 那里
从 AB
将 AB 的结构更改为两个foreign keys
将数据复制回来
删除临时table
答案 0 :(得分:2)
没有区别。请注意,在尝试构建表之间的关系时,如果存在以下冲突数据,则不允许创建约束:
Tbl1 (tbl1_id PK)
-----
1
2
Tbl2 (tbl2_id PK, tbl1_id)
-----
1
2
3
如果您尝试创建外键,则表示主表中不存在3。
所以是的,它们是等价的,只需注意SQL服务器内置安全保护措施以防止无效的关系数据。