Sql Server 2008跨数据库表链接(关系)

时间:2010-01-25 22:57:24

标签: sql sql-server sql-server-2008

我有一个问题,说实话我不认为有答案,但无论如何我都会试一试。

所以我有两个数据库[A] - >公司和[B] - >产品。两个数据库都有一个Country表,然后将其链接到每个单独数据库中的其他表。问题是两个Country表之间的数据是完全重复的。所以,我基本上必须复制每个数据库中的一些关系,并且维护最重要的只是......

所以,我很好奇有没有办法在表之间创建跨数据库关系,所以我只能有一组Country + Helper表来管理这两个数据库?

提前致谢!

5 个答案:

答案 0 :(得分:4)

您不能拥有跨多个数据库的物理关系,以强制执行FK约束。

您仍然可以在一个数据库中拥有核心查找/帮助程序表,但您只需要从其他数据库中的表中对其进行推断的FK约束 - 这是一个逻辑假设,而不是物理上受限制的东西。

答案 1 :(得分:2)

那么您可能想要考虑拥有一个事务数据库和两个数据库持久性数据库?很多工作,但它似乎是最好的可行选项 - 写入中的每个事务都会触发对每个“读取”数据库的写入?我不确定我完全理解这个问题,也许吧?

答案 2 :(得分:0)

您不能使用外键约束来执行此操作。你会强制它与触发器的关系,但这有点痛苦。

答案 3 :(得分:0)

保留在第一个数据库表&在第二个数据库中从该表创建一个视图

答案 4 :(得分:0)

是。将Country表保留在第一个数据库中,并为database2创建database1的country表的视图。没有物理数据只有视图,所以不需要恐慌。