如何为联结表创建外键

时间:2010-10-06 06:25:52

标签: sql sql-server junction-table

我有Object1和联结表以及Object2。 Object2是具有许多联结表的表,但只能有一个联结表来转发它。删除表Object1时,应删除联结表和Object2。在这种情况下如何制作外键?但是当删除Object2时,应该只删除连接表,而不是Object1。我正在使用SQL Server 2008。

2 个答案:

答案 0 :(得分:1)

我建议:

  1. 当删除表1中的行时,应删除表2中的连接表(JT)和行。答案:在JT参考表1中设置FK,ON DELETE CASCADE设置为on。在表2中设置FK,引用JT并将ON DELETE CASCADE设置为on。

  2. 当删除表2中的行时,应删除JT中的行。答:您可能需要为此设置触发器。

答案 1 :(得分:1)

你可以

  • CASCADING DELETES应用于您的junction表格中的外键Object2
  • Object1添加Trigger,检查删除情况并删除junction表格和Object2中的相应记录。