删除记录而不删除另一个Access表中的相关记录

时间:2014-01-10 13:30:19

标签: winforms ms-access ms-access-2007 c#-2.0

我在Access 2007中启用了参照完整性。我想从客户表中删除客户记录,但希望将该特定客户的相关帐单详细信息保存在另一个名为bill表的表中。当我尝试删除客户记录时,我收到一条错误消息:“记录无法删除或更改,因为表'帐单'包含相关记录”。

1 个答案:

答案 0 :(得分:2)

您不能双管齐下:您可以强制执行参照完整性,也可以在删除父记录时允许创建孤立子记录(即禁用参照完整性的强制执行)。

正如您对问题的评论所述,您可以将名为[Inactive]或[Deleted]的Yes/No字段添加到父表中,然后使用仅考虑“有效”的查询“父记录,例如

SELECT * FROM [Customer] WHERE NOT [Inactive]

另一种可能性是拥有一个单独的“存档”数据库来存储已删除的项目。您将所有相关记录(父级和子级)复制到存档数据库,然后从主数据库中删除它们(先是子级,然后是父级)。