使用sql和c中的级联和联接表从2个表中删除#

使用sql和c中的级联和联接表从2个表中删除#,sql,database-design,Sql,Database Design,我有一个使用数据库的Winforms应用程序 现在在数据库中,我有以下表: 表A(主键=标识-自动递增) 表B(主键=标识-自动递增) 表C(FK=表A的主键和表B的主键) 表A和B是陌生人,所以我添加了表C来连接它们 我正在尝试执行级联删除,因此当我从表a中删除一行时,它将从表B和C中删除相关行 我设置了表A和表C以及表B和表C之间的关系 但当我从表A中删除一行时,它会从表C中删除,而不是从B中删除。 为什么? 我无法将表C设置为表B的父级,因为主键…我建议您添加特定处理,以便在希望级联处理时

我有一个使用数据库的Winforms应用程序

现在在数据库中,我有以下表:

  • 表A
    (主键=标识-自动递增)
  • 表B
    (主键=标识-自动递增)
  • 表C
    (FK=表A的主键和表B的主键)
  • 表A和B是陌生人,所以我添加了表C来连接它们

    我正在尝试执行级联删除,因此当我从表a中删除一行时,它将从表B和C中删除相关行

    我设置了表A和表C以及表B和表C之间的关系

    但当我从表A中删除一行时,它会从表C中删除,而不是从B中删除。 为什么?


    我无法将表C设置为表B的父级,因为主键…

    我建议您添加特定处理,以便在希望级联处理时删除数据。最佳做法,以控制删除系统。

    不可能使用级联删除。尝试使用触发器。如果可以,我会。。但这是建议您使用存储过程的要求之一,即在一个事务中删除所有需要删除的数据。是的,您可以使用内部联接来删除这些数据。或子查询,其中包含或存在(我更喜欢存在)ok。。从内部连接有什么最好的方法吗?关于表之间的关系?我试过了,没有运气,事实上没有。。因为我使用visual studio设置了表之间的关系。。使用DB图是的,我知道查询应该是什么。。但当我第一次从表A中删除时,它是否也会起作用?首先删除A,然后删除B,最后删除链接表C