【发布时间】:2015-05-05 02:02:29
【问题描述】:
我有这种关系。而且我必须暂时销毁它只是为了使用 SQL 命令更改“salID”字段的大小:
ALTER TABLE Adressen DROP CONSTRAINT [ChildTableMainTable]
如何使用 SQL 命令重新创建相同的关系类型? 如果我使用下一个 SQL,我会得到一个一对多的关系。这不是我需要的:
ALTER TABLE MainTable ADD CONSTRAINT [ChildTableMainTable] FOREIGN KEY (salID) REFERENCES [ChildTable] (ChildPK);
【问题讨论】:
-
我认为,这两种关系都是一对多的关系,如底部的编辑关系框中所示......您可能正在寻找的是在末尾附加
ON UPDATE SET NULL ON DELETE SET NULL?跨度> -
在我的原始关系中未检查强制参照完整性。在不同的方法之后我放弃了。
-
如果你想要这些表之间没有参照完整性的一对多关系,除了加入 salID 和 CliIDPK 之外,我想不出别的了,
-
我正在更新一个旧产品,这需要对具有关系的字段进行一些修改。这些关系使我们更容易访问和查看查询中的数据。但是古老而糟糕的数据库设计不适用于强制关系。理想情况下,我宁愿只运行一个脚本来更新所述数据库,而不是有一堆手动步骤或编写一个单独的应用程序。我知道 DAO 可用于自动执行此操作,但这是一堆额外的工作(每次更改的代码段)实际上应该只是 SQL 中的一个关键字(例如 NOCHECK)。
-
@Simoyd:如果你修改Gord的函数,将表名和字段名作为参数,每个关系只有一行代码。
标签: sql ms-access constraints