从表中删除sql中的行

时间:2013-03-11 20:52:25

标签: c# .net sql winforms

对不起标题,但我不知道如何命名..

我正在使用C#并拥有一个WinForms应用程序 我有2个表,每个表都有一个主键,这两个表是陌生人。 这意味着我有一个连接它们的第三个表。 第三个表有列:table的主键和表的B主键。

我只是想知道,如果我从第三个表中删除一行,则是相关的 表A和B中的数据也将被删除?

4 个答案:

答案 0 :(得分:6)

如果使用ON DELETE CASCADE选项创建了外键约束,则是,它将删除其他表中的相关行。

如果您创建了一个没有ON DELETE CASCADE选项的外键约束,那么DBMS将阻止您删除原始行。

如果您没有创建外键约束,则只删除原始行。

有关级联删除选项的使用示例,请参阅this SO answer

答案 1 :(得分:1)

不,你的第三个表不只是存储表A和B的引用的关联表。

但是,如果在表A中删除了一条记录并且在关联表C中有任何引用,它将具有不同的功能。根据您的级联选项,表C中的记录也将被删除。如果没有提到级联选项,则会出现异常。

答案 2 :(得分:1)

由于外键约束,Sql Server不允许您从第3个表中删除该行。您必须先从表A和B中删除引用第3个表的值,然后从第3个表中删除。

答案 3 :(得分:0)

不,因为第三个表是表a和表b的关联表,如果删除在第三个表上,则表a和表b中的记录都不会被删除。