gpt4 book ai didi

sql - 来自不同数据库的表上的外键

转载 作者:行者123 更新时间:2023-12-02 07:16:21 25 4
gpt4 key购买 nike

我在 SQL Server 中有两个数据库,这两个数据库都有一个公用表,一个重要的大表,其中包含其他表的外键。问题是表位于 DatabaseA 中,我需要从 DatabaseB 引用此表的外键。

我知道 SQL 不支持跨数据库引用完整性,那么实现此目的的最佳方法是什么?我正在考虑将两个数据库合并为一个数据库 - 除了复杂性的增加之外,这并不重要。

有什么建议吗?

最佳答案

如果可以的话,我会避免这样做 - 你可以将两个表保留在一个数据库中并使用 FK 吗?

父表和子表位于不同的数据库中。

虽然在这种情况下不能使用外键,但有一些解决方法 - 您可以使用触发器或包含在检查约束中的 UDF。无论哪种方式,您的数据完整性都不是完全无懈可击的:如果包含父表的数据库崩溃并且您从备份中恢复它,您可能很容易就会得到孤儿表。

亲子关系是由触发器强制执行的。

有很多情况下触发器不会触发,例如:

· 一个表被删除。

· 表被截断。

· 嵌套和/或递归触发器的设置可防止触发器触发。

此外,触发器也可能不正确。无论哪种方式,您的数据库中最终都可能会出现孤儿。

关于sql - 来自不同数据库的表上的外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1424327/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com