我的数据库中有两个表
Collection_ (#Id_Collection, Libelle_Collection, Id_Editeur_Editeur)
编辑(#Id_Editeur,Libelle_Editeur)
当我想从表“Editeur”中删除一些记录时,它给了我这个错误:
DELETE 语句与 REFERENCE 约束“FK_Collection_Id_Editeur_Editeur”冲突。冲突发生在数据库“Gestion_bib”、表“dbo.Collection_”、列“Id_Editeur_Editeur”中。该语句已终止。
我知道错误是因为 Collection_ 表中的外键是 Editeur 表中的 PK,我在另一个数据库中使用 Cascade 语句,但我遇到了问题,所以我不喜欢使用它,我也使用了另一个使用 ADO.Net 的方法:
for (int i = 0; i < myClass.ds.Tables["Collection_"].Rows.Count; i++)
if (valToDelete == myClass.ds.Tables["Collection_"].Rows[i][2].ToString())
myClass.ds.Tables["Collection_"].Rows[i][2] = DBNull.Value;
SqlCommandBuilder cmb = new SqlCommandBuilder(adapter);
adapter.Update(myClass.ds, "Editeur");
但是当我处理包含许多 FK 的表时,这种方法会变得复杂。
那么,如果我删除了包含 PK 的表,请问还有其他方法可以将 FK 更改为 Null 值吗?