Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何为连接表创建外键_Sql_Sql Server_Junction Table - Fatal编程技术网

Sql 如何为连接表创建外键

Sql 如何为连接表创建外键,sql,sql-server,junction-table,Sql,Sql Server,Junction Table,我有Object1、连接表和Object2。Object2是一个具有多个连接表的表,但只能有一个连接表与其关联。删除表Object1时,应删除联接表和Object2。在这种情况下,如何制作外键?但当删除Object2时,只应删除连接表,而不应删除Object1。我正在使用SQL Server 2008。我建议: 删除表1中的行时,应删除连接表(JT)和表2中的行。答:在JT参考表1中设置FK,并将ON DELETE CASCADE设置为ON。在表2中设置FK,参考JT,将ON DELETE级联设

我有Object1、连接表和Object2。Object2是一个具有多个连接表的表,但只能有一个连接表与其关联。删除表Object1时,应删除联接表和Object2。在这种情况下,如何制作外键?但当删除Object2时,只应删除连接表,而不应删除Object1。我正在使用SQL Server 2008。

我建议:

  • 删除表1中的行时,应删除连接表(JT)和表2中的行。答:在JT参考表1中设置FK,并将ON DELETE CASCADE设置为ON。在表2中设置FK,参考JT,将ON DELETE级联设置为ON

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

  • 你可以

    • 将外键从
      junction
      表应用到
      Object2
    • Object1
      中添加一个,检查是否删除,并删除
      junction
      表和
      Object2
      中的相应记录