C# 在MSAccess中禁用外键约束

C# 在MSAccess中禁用外键约束,c#,sql,ms-access,foreign-keys,C#,Sql,Ms Access,Foreign Keys,在数据传输期间,我想禁用/启用 桌子上的所有外键 所有表上的所有外键 通过MSAccess中的查询。 我将从C#模块调用query。将进行大容量插入。您可以从MSysRelationships中删除您的关系。执行您的操作,确保所有操作都有效,然后在MSysRelationships中重新创建记录 但这似乎很困难。您故意将坏数据放入带有约束的表中。为什么不将数据放入一个临时表中,该临时表的设计与具有约束的表相同,然后根据在关系中建立的规则使用插入查询将记录移动到规范表中呢。这样,您就永远不会删

在数据传输期间,我想禁用/启用

  • 桌子上的所有外键

  • 所有表上的所有外键

通过MSAccess中的查询
我将从C#模块调用query。将进行大容量插入。

您可以从
MSysRelationships
中删除您的关系。执行您的操作,确保所有操作都有效,然后在
MSysRelationships
中重新创建记录


但这似乎很困难。您故意将坏数据放入带有约束的表中。为什么不将数据放入一个临时表中,该临时表的设计与具有约束的表相同,然后根据在关系中建立的规则使用插入查询将记录移动到规范表中呢。这样,您就永远不会删除关系,也不会因为数据不正确而破坏您的表。

您可以从
MSysRelationships
中删除您的关系。请做好准备,确保所有关系都有效,然后在
MSysRelationships
中重新创建记录


但这似乎很困难。您故意将坏数据放入带有约束的表中。为什么不将数据放入一个临时表中,该临时表的设计与具有约束的表相同,然后根据在关系中建立的规则使用插入查询将记录移动到规范表中呢。这样,您就不会丢失关系,也不会因为错误数据而破坏表。

通过查询或在查询过程中,例如在插入/更新过程中,如此处所述:@D.R.我已更新了问题,我将通过C#project调用disable/enable foreign key/checks等查询。所以想通过查询而不是GUI在链接中执行操作,我认为这在Access中是不可能的(该链接声明它仅适用于ADP文件),尤其是在查询中。通过VBA,您可以临时存储关系,然后删除它们,执行大容量插入,然后在之后重新添加它们(访问/删除关系的代码示例:),但它无法处理您添加的某些数据可能违反关系的事实,因此请非常小心。通过查询或在查询过程中,例如,在此处所述的插入/更新过程中:@D.R.我已更新了问题,我将通过C#project调用禁用/启用外键/检查等查询。所以想通过查询而不是GUI在链接中执行操作,我认为这在Access中是不可能的(该链接声明它仅适用于ADP文件),尤其是在查询中。可以通过VBA实现,在VBA中,您可以临时存储关系,然后删除它们,进行批量插入,并在之后重新添加它们(访问/删除关系的代码示例:),但它无法处理您添加的某些数据可能会违反关系的事实,因此请非常小心。谢谢。虽然我不喜欢该解决方案,但我没有找到任何其他解决方案,我正在尝试跳过此项。谢谢。虽然我不喜欢该解决方案,但我没有找到任何其他解决方案,我正在尝试跳过此项。