将外键设置为多个表

时间:2013-04-08 08:15:14

标签: sql-server foreign-keys sql-server-2012

我有三个表Teachers,Student,ViewType

table Teachers{
  Id uniqueidentifier, 
  Name nvarchar
}


table Student{
  Id uniqueidentifier, 
  Name nvarchar
}


table ViewType{
  Id uniqueidentifier, 
  Type String
}

注意:假设ViewType不是常规查找表的示例 它包含如何在ui中呈现教师或学生的数据不应该在教师或学生表模型中。

是否有办法为两个强制执行密钥的表创建外键 而且只有两张桌子? 感谢。

1 个答案:

答案 0 :(得分:1)

不使用声明性参照完整性约束。

您必须使用触发器实现此功能;并且你需要在所有三个表格上insert + update ViewTypedelete + update其他表格。

你可以用其他方式设置约束:

alter table Student add constraint FK foreign key (Id) references ViewType (Id)
alter table Teachers add constraint FK foreign key (Id) references ViewType (Id)

这并不完美(你最终可能会引用一个学生和老师,引用相同的Id,你必须要处理),但这可能是你能做的最好的。